我有一个余烬应用程序,它需要以下视图:
一种查看您发布的所有评论-/reviews
查看用户个人资料的一个-/users/:id
一个查看其他用户已发布的所有评论-/users/:id/reviews
我正在为第三个奋斗。
这是我的router.js
this.route('reviews', function() {
this.route('show', { path: "/:id" });
});
this.route('users', function(){
this.route('show', {path: '/:id'}, function () {
this.route("reviews", function(){});
});
});
我的这条路线的模板在
templates/users/show/reviews/index.hbs
我的路线在
routes/users/show/reviews/index.js
但是当我访问
localhost:4200/users/1/reviews
时,它显示了用户配置文件路径(users/:id
-第二个要点)。就像完全一样如何使此路由与正确的模板和route.js文件一起使用?
最佳答案
您的路线应为:
this.resource('reviews', function() {
this.route('show', { path: '/:id'})
})
前一种方式意味着您将可以使用以下路线:
/reviews
index用于资源审核/reviews/:id
show并且应具有以下文件:
路线->
app/routes/reviews/show.js
,app/routes/reviews/index.js
控制器->
app/controllers/reviews/show.js
,app/controllers/reviews/index.js
模板->
app/templates/reviews/show.hbs
,app/templates/reviews/index.hbs
请注意,如果您未定义任何先前的文件,则ember默认情况下将生成一个。
对于用户,应遵循与先前定义相同的逻辑。
this.resource('users', function() {
this.resource('user', { path: '/:id' }, function () {
this.route("reviews");
});
});
为用户翻译先前的定义,您将遵循以下路线。
/users
/users/:id
/users/:id/reviews
reviews中users
的路线希望能帮到您!
关于javascript - Ember.js中的嵌套路由,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31201441/