Ember.js无法找到嵌套路由

时间:2014-01-16 14:02:39

标签: ember.js

我的应用程序有嵌套模板。这将由以下路由器显示:

this.resource('products', function() { 
    this.resource('product', {path: ':product_id'}, function() {  // Error: There is no route named product
        this.resource('page', {path: 'page/:page_id'});
    });
});

感谢@ kingpin2k对此路由器的帮助:Ember.js How to show two routes at the same time

问题是,没有页面资源可以找到产品路径。当我添加页面资源时,product.index路由现在具有正确的产品路径网址,正如我在Ember Inspector中看到的那样:

路线和网址:

`product`       | (empty)
`product.index` | /products/:product_id // this one must be on the above `product` route
`page`          | /products/:product_id/page/:page_id // correct

如您所见,新的product.index造成了麻烦。但只有在我添加页面路径时才会出现.index变体。

修改以清除,使用上述路由器我收到错误:Error: There is no route named product。 生成该错误的代码位于视图中:

var router = self.get('controller.target.router');
var product = self.get('content').findBy('index', 0);

router.transitionTo('product', product); // Error

1 个答案:

答案 0 :(得分:1)

你会试试吗

var controller = self.get('controller');
var product = self.get('content').findBy('index', 0);

controller.transitionToRoute('product', product);