私は次のようなものを持っています:isAuthenticated
かどうかを判断するインスタンス内に単にプロパティを持っています。何らかの理由で、this.isAuthenticated
をさまざまな値に設定して値を変更していても、logout
と他のいくつかの方法では、その変更は角度では検出されません。私もマニュアルをしようとした$digest
と$apply
まだ運がない。変更をトリガーしないサービス内のプロパティへの変更
export default class UserService {
constructor($http, $state, AppConstants, JWTService) {
'ngInject';
this.$http = $http;
this.$state = $state;
this.isAuthenticated = false;
}
logout() {
this.isAuthenticated = false;
this.$state.go('login', null, { reload: true });
}
verify() {
return new Promise((resolve) => {
// if a user exists, then resolve
if (this.isAuthenticated) {
return resolve(true);
}
this.$http({
method: 'POST',
url: `${this.AppConstants.api}/verify`
})
.then(() => {
this.isAuthenticated = true;
return resolve(true);
})
.catch(() => {
this.isAuthenticated = false;
return resolve(false);
});
});
}
}
コードが動作し、私が最初にログインしたとき、私はtrueにthis.isAuthenticated
を設定して投稿することによりthis.verify
作品。しかし、logout
の場合、this.isAuthenticatd
はfalse
になりますが、if (this.isAuthenticated)
は、this.verify
を再度呼び出すと、true
のままです。
これは角度V1の質問のように見えますか?もしそうなら、あなたのタグを更新してください。 'angular'はAngular v2 +で、' angularjs'は角度1です。ありがとう! – DeborahK
タグを更新しました。 – Detuned