当每个 parent 具有相同的 child id 时,如何创建嵌套的 ember 路由?
How to create nested ember route when each parent has same child ids?
我正在使用 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 检查器中看到我的课程和讲座数据加载没有问题。问题是,当我单击那个 link 时,它会在顶部显示正确的 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 级别的讲座,但我不确定如何让它显示 ember id,因为这条路线不有效:
上课路线:
import Ember from 'ember';
export default Ember.Route.extend({
model: function(params) {
return this.store.find('lecture', params.lecture_id);
}
});
任何人都可以指导我如何使这个嵌套 ember 路由成为可能吗?非常感谢!
确保您在模板中为 'course' 路线定义了出口。如果您的 'lecture' 模板中没有出口和内容,则不会显示任何内容。
我正在使用 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 检查器中看到我的课程和讲座数据加载没有问题。问题是,当我单击那个 link 时,它会在顶部显示正确的 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 级别的讲座,但我不确定如何让它显示 ember id,因为这条路线不有效:
上课路线:
import Ember from 'ember';
export default Ember.Route.extend({
model: function(params) {
return this.store.find('lecture', params.lecture_id);
}
});
任何人都可以指导我如何使这个嵌套 ember 路由成为可能吗?非常感谢!
确保您在模板中为 'course' 路线定义了出口。如果您的 'lecture' 模板中没有出口和内容,则不会显示任何内容。