如何在每个父级具有相同的子ID时创建嵌套的ember路由?

时间:2015-02-05 06:19:11

标签: javascript ruby-on-rails ember.js

我正在使用rails api中的ember-cli来尝试显示嵌套路线的演讲模板。这是我的路由器:

Router.map(function() {
  this.route('home');
  this.resource('courses', function() {
      this.resource('course', { path: '/:course_id' }, function() {
        this.resource('lecture', { path: '/lecture/:lecture_id' });
      });
    });
});

使用以下方法在课程模板中显示单个讲座时没有任何问题:

{{#each lecture in lectures}}
  {{#link-to 'lecture' lecture classNames='list-group-item'}}{{lecture.name}}{{/link-to}}
{{/each}}

所以我在ember检查员看到我的课程和讲座数据没有任何问题。问题是当我点击该链接时,它会在顶部显示正确的URL,但页面不会更改。

课程模型:

export default DS.Model.extend({
    name: DS.attr('string'),
    lectures: DS.hasMany('lecture',  {async: true})
});

讲座模型:

export default DS.Model.extend({
    name: DS.attr('string'),
    level: DS.attr('string'),
    course: DS.belongsTo('course')
});

我的理想情况是路线指向水平参数,因为每个课程都可以有1-8级的讲座,但我不知道如何让它显示余烬ID,因为这条路线工作:

讲座路线:

import Ember from 'ember';

export default Ember.Route.extend({
    model: function(params) {
        return this.store.find('lecture', params.lecture_id);
    }
});

有人可以给我指导如何使这种嵌套的余烬路线成为可能吗?非常感谢!

1 个答案:

答案 0 :(得分:1)

确保您的模板中为“课程”路线定义了插座。如果没有“讲座”模板中的插座和内容,则不会显示任何内容。