このログイン例は、自分のニーズに合わせてコピーしました。それはうまくいきます。しかし、私は自分自身に問いかけています: なぜこのEmber.run.later(this, this._serverLogin, 100);
行が必要なのですか? コメントが言ったように、それは遅延をシミュレートするためだけのものです。Ok。しかし、これを次のように変更すると:
// Create the login controller
MyApp.loginController = Ember.Object.create({
username: '',
password: '',
isError: false,
tryLogin: function() {
if(this.get('username') === MyApp.USERNAME &&
this.get('password') === MyApp.PASSWORD) {
this.set('isError', false);
this.set('username', '');
this.set('password', '');
MyApp.stateManager.send('loginSuccess');
} else {
this.set('isError', true);
MyApp.stateManager.send('loginFail');
}
},
});
なしEmber.run.later(this, this._serverLogin, 100);
で、私は得るUncaught Error: <Ember.StateManager:ember270> could not respond to event loginSuccess in state loggedOut.awaitingCredentials.
ので、stateManager を変更する前に、またはそのようなものを取得するには、おそらくこの遅延が必要だと思いました。しかし、古いコードを実行するとEmber.run.later(this, this._serverLogin, 0);
、まだ機能します。それで、何が違うのですか?emberのドキュメントにはヒントがありませんでした。