【问题标题】:How to create nested ember route when each parent has same child ids?当每个父级具有相同的子级 ID 时,如何创建嵌套的 ember 路由?
【发布时间】:2015-02-05 06:19:10
【问题描述】:

我正在使用 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')
});

我的理想方案是指向 level 参数的路线,因为每门课程都可以有 1-8 级的讲座,但我不知道如何让它显示 ember id,因为这条路线确实 工作:

讲座路线:

import Ember from 'ember';

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

谁能指导我如何使这条嵌套的 ember 路线成为可能?非常感谢!

【问题讨论】:

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


    【解决方案1】:

    确保您在模板中为您的“课程”路线定义了一个出口。如果您的“讲座”模板中没有出路和内容,什么都不会出现。

    【讨论】:

    • 非常感谢,就是这样!我想我很困惑,因为我显然不需要课程模板中的 {{outlet}} 来查看课程模板,但我确实需要课程模板上的 {{outlet}} 来查看讲座模板。
    猜你喜欢
    • 1970-01-01
    • 2013-07-31
    • 2015-12-04
    • 2014-11-22
    • 2023-03-06
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多