1
Observable.create()ステートメント内からクラス変数を設定する際に問題が発生しました。変数は未定義のままです。 (これは問題ではありませんが、これはイオンフレームワークを使用しています)。私が呼んでいるobservable.create()内からクラス変数を設定する
@Injectable()
export class AuthenticationService {
currentUser: User;
login(email, password): Observable<boolean> {
return Observable.create(function(observer) {
var loggedIn = true; //Do call to login service
if(loggedIn) {
this.currentUser = new User("Test_Fname", "Test_Lname");
}
observer.next(loggedIn);
observer.complete();
});
}
}
コントローラー(:AuthenticationServiceは...一度app.module.tsで(私はcurrentUser
変数を設定しようとしている)
注射クラス「を注入」されますlogin
関数):
import { AuthenticationServiceProvider, Credentials } from '../../providers/authentication-service/authentication-service';
@Component({
selector: 'page-login',
templateUrl: 'login.html',
})
export class LoginPage {
constructor(private authService: AuthenticationServiceProvider) {
}
login() {
this.authService.login("[email protected]", "password123!")
.subscribe(authenticated => {
if(authenticated) {
console.log("Logged in!");
console.log(this.authService.currentUser); // UNDEFINED!!!
} else {
console.log("Login failed!");
}
}
);
}
}
「ログインしました!コンソールメッセージですが、currentUserはまだ未定義です。 Observable.create()の外側からcurrentUserを設定すると、正常に動作します。私はそれを間違っているのですか?
ありがとうございました。
'[angularjs]'!= '[angular]'。タグには注意してください! ;-) – Mistalis
[コールバック内の正しい\ 'this \ 'にアクセスするにはどうすればいいですか?](https://stackoverflow.com/questions/20279484/how-to-access-the-correct-this-inside- aコールバック) – n00dl3