我想了解setupController
和model
挂钩,只有在动态细分的情况下才会调用它们吗?
这是我的路由器配置,我看到应用程序工作正常,但我没有看到这些钩子被执行:
// Router, this need to connect view and controller
App.Router.map(function(){
this.resource("login", {path : "/"});
this.resource("home" , {path : "home/:home_id"});
});
App.Router.IndexRoute = Ember.Route.extend({
setupController:function(controller,model){
console.log("in setupController hook for index route");
}
});
App.Router.LoginRoute = Ember.Route.extend({
setupController:function(controller,model){
console.log("in setupController hook for login route");
}
});
App.Router.HomeRoute = Ember.Route.extend({
setupController:function(controller,model){
console.log("in setupController hook for login route");
}
});
答案 0 :(得分:9)
假设您使用的是最新的余烬(1.0.0-RC.1)您应该像这样定义您的路线:
App.HomeRoute = Ember.Route.extend({
...
});
他们是您App
的一部分,并且没有Router
部分。
关于model
和setupController
挂钩行为的说明:
在路线中,只有在直接导航到包含动态细分的网址时才会调用model
。传递到model
的参数用于使用动态段检索该路线的模型。
如果使用{{#linkTo route myObject}}
或transitionTo(myObject)
调用到达路线,则传递的对象用于直接呼叫setupController
,并且不会调用model
。
每次路线进入
时,都会调用setupController
挂钩