/
ルートが訪問されるたびにコードを実行するにはどうすればよいですか?
私は今これを持っています:
App.indexController = Ember.Controller.extend({
showFront: function () {
alert("zzz");
}
});
しかし、私は立ち往生しています。実際に機能させるにはどうすればよいですか?
/
ルートが訪問されるたびにコードを実行するにはどうすればよいですか?
私は今これを持っています:
App.indexController = Ember.Controller.extend({
showFront: function () {
alert("zzz");
}
});
しかし、私は立ち往生しています。実際に機能させるにはどうすればよいですか?
beforeModel
とsetupController
フックを使用して、ルートがロードされたときにコードを実行できます。
App.Router.map(function(){
this.resource('posts', { path: '/posts' }, function() {});
});
App.PostsRoute = Ember.Route.extend({
// http://emberjs.com/api/classes/Ember.Route.html#method_beforeModel
beforeModel: function() {
console.log("beforeModel fired");
},
// http://emberjs.com/api/classes/Ember.Route.html#method_setupController
setupController: function(controller, model){
this._super(controller, model);
console.log("setupController fired");
},
model: function(){
// resolve the promise after a short delay
return Ember.RSVP.Promise(function(resolve, reject){
setTimeout(function(){
resolve(true);
}, 2000);
});
}
});
beforeModel
名前が示すように、モデルがロードされる前に起動し、モデルがロードsetupController
された後に起動します。JSBin の例では、遅延読み込みモデルを使用して違いを示しています。
App.Post
この例はルートに使用されているフックを示していますがApp.ApplicationRoute
、デフォルト ルートをロードするときにコードを実行する場合は、これを使用できます。