Ember嵌套路由和渲染模型

时间:2015-01-31 12:00:29

标签: javascript ember.js routes handlebars.js ember-router

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

  1. 在编辑链接上,我可以看到我的所有发票和交易 在一起(它现在是如何运作的)
  2. 在“查看”链接上,我只想查看具有自己交易的特定发票信息     而不是任何其他发票和信息
  3. 我已复制了我的案例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>
    

1 个答案:

答案 0 :(得分:1)

我没有让你的编辑&#39;部分。您现在遇到的问题是发票模板中定义的插座,所有子路线都将在此处呈现,因此您无法在没有其父(发票)内容的情况下显示发票。

我认为最常见的方法是删除插座并显示InvoicesIndex路线中的所有发票。然后单击发票将转到单个发票(新页面不显示InvoicesIndex路线中的发票清单)。