【问题标题】:Using Handlebars link-to for nested routes使用 Handlebars 链接到嵌套路由
【发布时间】:2014-03-10 19:04:50
【问题描述】:

在一个基于 Ember 的项目中,我有一个 book 对象,它包含一系列章节,每个章节都是一个章节数组。

我还有一个嵌套路由,如下所示:

  this.resource('book', { path: 'book/:id' }, function() {
        this.resource('section', { path: 'chapter/:chapter_num/section/:section_num'});
  });

在我的车把模板中,我的菜单看起来像这样:

   <ul>
        <li>{{#link-to 'book' this}}Home{{/link-to}}</li>
        {{#each chapter in chapters}}
            <li>{{title}}</li>
            <ul>
                {{#each section in sections}}
                    <#link-to ???WHAT TO PUT HERE???>{{section}}</link-to>
                {{/each}}
            </ul>
        {{else}}
            <li>No chapters</li>
        {{/each}}
    </ul>

我正在努力想出一种正确的方法来生成到给定部分的路线,其中输出将是以下效果:

例如:

book/1234567/chapter/3/section/4 用于第 3 章、第 4 节

book/1234567/chapter/1/section/2 用于第 1 章、第 2 节

第一,我不确定如何访问我即将为其创建链接的当前章节的索引,第二,我不确定如何为给定的部分创建嵌套路由。

我对 Ember 还是很陌生,所以这里的任何提示都会很有帮助。

【问题讨论】:

    标签: ember.js handlebars.js


    【解决方案1】:

    你应该使用 Ember.Route 的 serialize 和 model 方法来处理 url,然后将部分发送到链接到。

    使用 {{#link-to 'book.section' book section}}

    并在路线中做这样的事情:

    App.SectionRoute = Ember.Route.extend({
      model: function(params) {
          var book = this.modelFor('book');
          return book.getChapter(params.chapter_num).getSection(params.section_num);
      },
    
      serialize: function(section) {
          return { 
              chapter_num: section.get("chapter.id"),
              section_num: section.get("id")
          };
      }
    });
    

    希望有帮助。

    【讨论】:

    • 确实如此。谢谢!
    【解决方案2】:

    我建议将您的路线更改为:

    this.resource('book', { path: 'book/:id' }, function() {
            this.resource('chapter', { path: 'chapter/:chapter_num'}, function(){
                 this.resource('section', { path: 'section/:section_num' });
            });
    });
    

    然后您可以通过以下方式添加路线:

    {{#link-to 'book.chapter.section' book chapter section}} {{section}} {{/link-to}}
    

    至少,我认为这应该可行。您可能需要将num 更改为id

    【讨论】:

    • 但是如果章节路径没有真正的意义,并且没有附加章节就没有意义怎么办?问题的另一部分是与实际模型相比,我如何才能真正访问所述章节的索引?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 2017-10-22
    相关资源
    最近更新 更多