链接到传递两个模型时无法找到嵌套资源

时间:2014-06-02 18:55:03

标签: ember.js

这是我正在学习构建的应用程序。

类别有很多产品。

类别的标记 - 标题和作为正文的产品属于类别模板 router.js

MyApp.Router.map(function () {
    this.resource('categories', {path: '/'}, function () {
        this.resource('category', { path: '/:category_id'}, function () {
            this.resource('product', {
                path: '/:product_id'
            });
        });
    });
});

我的分类车把

<div class="panel-group" id="accordion1">
   {{#each category in model}}
     {{view MyApp.AccordionView  context=category}}
   {{/each}}
</div>

和我的手风琴观点

<div class="panel panel-default">
 <div class="panel-heading">
  <h4 class="panel-title">
    {{#view MyApp.AccordionTitleView }}{{name}} {{/view}} 
  </h4>
</div>
<div {{bind-attr id=id}}class="panel-collapse collapse">
 <div class="panel-body">
   <table class="table">
    <tbody>
      {{#each products itemController="product"}}
        <tr><td>{{#link-to 'category.product' category content }}{{content.name}}{{/link-to}}</td></tr>
      {{/each}}
    </tbody>
   </table>
  </div>
</div>
</div>

error

enter image description here

U P D A T E S

我的问题通过改变得到了解决 我在手风琴中的{{#link-to 'category.product' category content }}观点 {{#link-to product' category content }}

但是根据ember指南 Ember guides  我可以传递两个模型,如此示例代码

<p>
  {{#link-to 'photo.comment' 5 primaryComment}}
    Main Comment for the Next Photo
  {{/link-to}}
</p>

我不明白是否因为我的路由器层次结构。但在任何情况下,我认为它应该给出一些不错的错误。我不知道专家们对此有什么看法

1 个答案:

答案 0 :(得分:0)

您必须在链接中使用'product'而不是'category.product'。 这是因为在MyApp.Router.map()中,您将产品视为资源,而不是路径。 资源的路由名称没有前缀,而路由的路由名称以其父资源为前缀。 见http://emberjs.com/guides/routing/defining-your-routes/#toc_nested-resources