在Ember的不同路线上多次使用模板和控制器

时间:2014-10-15 17:49:46

标签: javascript ember.js

在我的Ember应用程序中,我有一个类别控制器和相应的模板。

我想在各种路线上使用它:浏览时,高级搜索时和添加产品时。

我试着将它拼凑在一起:

#router
this.resource("categories", { path: "/*scope/select-category" }, function() {
} );

范围可以是'search''products''products/new'。这会让网址非常漂亮!

但是我很难从我的控制器中找回*scope值,我发现它深深地嵌套了,但是'products/new'作为范围,值为'products'

此外,我已经遇到了一些奇怪的行为,例如,在'products/select-category'的新页面加载时,它想要转到'products.product',尝试找到ID ='select-category'的产品。这当然不是我想要的。

类别路线是列表中的第一条路线,所以我假设它总是首先选择..?

我怀疑这是否是正确的方法。

1 个答案:

答案 0 :(得分:0)

您可能应该这样做,通过在单独的路线上处理范围:

#router
this.resource("scope", { path: "/scope/:scope" }, function() {
    this.route("categories", { path: "/select-category" }
} );

这样,您可以在ScopeRoute中使用适当的范围参数很好地处理范围。