【发布时间】:2015-10-25 14:16:54
【问题描述】:
我是 Ember.js 的新手,我坚持使用嵌套路由,我需要帮助。
这就是我想要实现的目标:
我认为这被称为 Master-Detail 页面。
更系统地看起来像这样:
UsersIndexRoute 显示人员列表。 UsersShowRoute 显示特定人员的信息。
这是我的路线:
Router.map(function() {
this.route('users', { path: '/users'}, function() {
this.route('index', { path: ''}, function() {
this.route('show', { path: '/:id' });
});
});
});
UserIndex 模板如下所示:
{{#each item in model}}
{{#link-to 'users.index.show' item.id}} {{item.firstName}} {{item.lastName}}{{/link-to}}
{{/each}}
例如,当我尝试像“http://localhost:4200/users/1”这样的 URL 时,根据调试器,我能够访问控制器“users.index.show”(所需的)
UserShowRoute 的路线如下所示:
export default Ember.Route.extend({
renderTemplate: function() {
this.render({
outlet: 'detail'
});
},
model: function(params) {
return this.store.find('user', params.id);
}
});
我使用的是 ember-cli 1.13.8
我希望我的解释对你有意义。 提前致谢。
【问题讨论】:
-
我找不到问题。您提供的代码看起来不错。如果它不起作用,您可以发布堆栈跟踪
-
@kristjanreinhold 但是,我没有收到任何错误
-
@kristjanreinhold 当我将 ENV.APP.LOG_TRANSITION 设置为 true 时,它显示“已转换为 'users.index.show'
-
@kristjanreinhold 我在 UsersShowRoute 的模型挂钩中添加了“console.log”,并打印到控制台。看起来模板渲染有问题。
-
@kristjanreinhold 我在github上做了repo,以防我没有提供足够的信息github.com/SuperManEver/nested_routes