【问题标题】:In Ember.js does setupController and model hooks work only for dynamic segments?在 Ember.js 中,setupController 和模型挂钩是否仅适用于动态段?
【发布时间】:2013-03-22 12:25:59
【问题描述】:

我想了解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");
  }
});

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    假设您使用的是最新的 ember (1.0.0-RC.1),您应该像这样定义您的路线:

    App.HomeRoute = Ember.Route.extend({
      ...
    });
    

    它们是您的App 的一部分,没有Router 部分。

    Working JSBin example

    作为modelsetupController 钩子行为的注释:

    在路由中,model 只会在直接导航到包含动态段的 URL 时被调用。传递给model 的参数用于使用动态段检索该路由的模型。

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

    每次路由进入时都会调用setupController钩子

    Ember API docs for model

    Ember API docs for setupController

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-07
      • 2013-02-17
      • 2023-03-25
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多