Вы можете использовать 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
, если вы хотите, чтобы код выполнялся при загрузке маршрута по умолчанию.
JSBin example
Это не работает: App.IndexRoute = Ember.Route.extend ({ setupController:. Функция (контроллер) { $ ('# аутентификации') показывают();} }) ; –