私はember jsが初めてで、ルーティングを理解しようとしています:)
これが私のコントローラーコードです:
App.AppController = Em.ArrayController.extend({
login: App.Login.create({}),
loginUser: function(){
$.ajax({
type: 'POST',
cache: false,
url: contextPath + 'user/register',
data:{name:this.login.name, email:this.login.email,password:this.login.password,confirmPassword:this.login.confirmPassword,acceptTerms:this.login.acceptTerms},
success: function(data) {
alert('success!');
},
error: function(jqXHR, textStatus, errorThrown) {
}
});
}
})
関数を使用する場所は次のとおりです。
App.ChooseServiceIndexRoute = Em.Route.extend({
redirect: function() {
var isLoggedIn = this.controllerFor('app').loginUser();
alert(isLoggedIn);
if(isLoggedIn){
this.transitionTo('chooseService');
}
else {
this.transitionTo('app');
}
}
});
関数loginUserが呼び出されるようですが、関数が完了する前にアラート(isLoggedIn)が発生します(アラート(成功)はアラート(isLoggedIn)の後に発生します)。
何が起こっているのかを理解するために、いくつかの助けを借りることができます。
ありがとう!