我有一个余烬应用程序,它需要以下视图:




一种查看您发布的所有评论-/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.jsapp/routes/reviews/index.js

控制器-> app/controllers/reviews/show.jsapp/controllers/reviews/index.js

模板-> app/templates/reviews/show.hbsapp/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/

10-12 15:52