在Ember.js中,setupController和模型钩子只适用于动态段吗?

fla*_*ash 7 ember.js

我试图理解setupControllermodel钩子,它们只会在动态段的情况下被调用吗?

这是我的路由器配置,我看到应用程序工作正常,但我没有看到这些钩子被执行:

// 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");
  }
});
Run Code Online (Sandbox Code Playgroud)

Cra*_*den 9

假设您正在使用最新的余烬(1.0.0-RC.1)您应该像这样定义您的路线:

App.HomeRoute = Ember.Route.extend({
  ...
});
Run Code Online (Sandbox Code Playgroud)

他们是你的一部分,App没有这Router部分.

使用JSBin示例

作为注释modelsetupController钩子行为:

在路径中,model仅在直接导航到包含动态段的URL时才会调用.传入的参数model用于使用动态段检索该路径的模型.

如果使用{{#linkTo route myObject}}transitionTo(myObject)调用到达路由,则传递的对象用于setupController直接调用model而不调用.

setupController钩子都会被调用的路径进入的时间

Ember API文档 model

Ember API文档 setupController