在我的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'的产品。这当然不是我想要的。
类别路线是列表中的第一条路线,所以我假设它总是首先选择..?
我怀疑这是否是正确的方法。
答案 0 :(得分:0)
您可能应该这样做,通过在单独的路线上处理范围:
#router
this.resource("scope", { path: "/scope/:scope" }, function() {
this.route("categories", { path: "/select-category" }
} );
这样,您可以在ScopeRoute中使用适当的范围参数很好地处理范围。