Ember 嵌套路由和渲染模型

Ember Nested Routes and rendering models

我有一个发票应用程序生成器,我想以 2 种不同的方式显示发票及其所有交易,目前我只能以一种方式进行(编辑 Link)

  1. 在编辑 link 中我可以看到我所有的发票和交易 在一起(这就是现在的工作方式)
  2. 在视图 link 中,我只想查看包含他自己的交易的特定发票信息 而不是任何其他发票和信息

我已经复制了我的案例here

这是路线代码

App.Router.map(function(){ 
    this.resource('invoices', function(){
        this.resource('invoice', { path:'/:invoice_id' }, function(){
            this.route('edit'); 
        }); 
        this.route('create');
    });

}); 

问题是,只要我在发票资源中,我就会共享生成所有内容的发票模板,但是有没有一种方法可以让我在发票路径中只看到我的单张发票和他自己的交易?使用相同的路线代码是否可以实现?完成这项工作的最佳方法是什么?

   <script type="text/x-handlebars" id="invoices">
    <div class="large-12 columns">
      {{#link-to "invoices.create"}} Add Invoice {{/link-to}}
    </div>
    <ul class="fatturas-listing">
      {{#each invoice in model}}
        <li>
          {{#link-to "invoice" invoice}}
            Edit {{invoice.title}}
          {{/link-to}}
        </li>
        <li>
          {{#link-to "invoice" invoice}}
            View {{invoice.title}}
          {{/link-to}}
        </li>
       {{else}}
        <li>no fatturas… :(
        </li>
      {{/each}}
    </ul>
    {{outlet}}
  </script>

我不明白你的 'edit' 部分。你现在遇到的问题是 invoices 模板中定义的 outlet,所有的子路由都会在这里渲染,所以你不能显示没有其父(invoices)内容的发票。

我认为最常见的方法是删除出口并在 InvoicesIndex 路由中显示所有发票。单击一张发票将转至一张发票(一个新页面,不显示 InvoicesIndex 路线中的发票列表)。