【问题标题】:Ember nested routed with dynamic segmentsEmber 嵌套路由与动态段
【发布时间】:2014-07-05 06:28:00
【问题描述】:

我有一个 Ember 应用程序,它有一系列嵌套路由,每个路由都有动态段:

例如

/NestedRouteA/argA/NestedRouteB/argB

在 NestedRouteB 路由的模型钩子中,我使用 argA 和 argB 来查找给定的资源。

我遇到的问题是,当 argB 保持不变,但 argA 发生变化时,不会调用模型挂钩

例如

如果用户是/NestedRouteA/1/NestedRouteB/1,然后去NestedRouteA/2/NestedRouteB/ 1,我期望调用的模型钩子没有。

有什么办法可以强制调用模型钩子吗?

【问题讨论】:

  • 请发布一个 jsbin 或一些我们可以使用的代码。这样更有可能得到答案!但从你所说的来看,我想说一种解决方案是在 NestedRouteA 的钩子中设置 NestedRouteB 的控制器。所以像this.controllerFor('nestedRouteB').set('model', MODEL);
  • 你是如何在资源之间转换的?如果您提供模型,则不会调用模型钩子。

标签: javascript ember.js


【解决方案1】:

我在这里创建了一个 JS 小提琴:

http://jsfiddle.net/ssirowy/P2P9n/1/

App.ParentRoute = Ember.Route.extend({
   model: function(params){
       return params.parent_num;
   } 
});

App.ParentChildRoute = Ember.Route.extend({
   model: function(params){
      var parent = this.modelFor('parent');
      var child = params.child_num;
      console.log("Retrieving model for parent/child combo");
      return new Ember.RSVP.Promise(function(resolve){
        setTimeout(function(){ 
            resolve(child);
        }, 1000); 
       });
   }
});

fiddle当前版本使用的是最新的Ember,并没有显示我之前遇到的问题。

但是,如果您使用

我在我的项目中升级了,问题就消失了。

【讨论】:

    猜你喜欢
    • 2015-10-22
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 2014-12-19
    相关资源
    最近更新 更多