路线和参数的灰烬问题

时间:2016-02-29 17:39:31

标签: ember.js

我遇到了设置路线的问题。

我有一个路线组

this.route(' users',function(){

/users

/users/add

以及this.route('用户',{路径:' / users /:user_id'},function(){

用于

等路线
/users/1/edit

/users/1/goals

/users/1/goals/1

我遇到的问题是{{#link-to'用户'}}用户{{/ link-to}}会产生指向" / users / undefined"的链接。 ,这导致其他问题,它需要是" / users"。有没有办法做这样的路线或者我会被迫拥有"用户"和"用户"路线组?

我的路线:

this.route('users', function () {
  this.route('add');
});

this.route('users', {path: '/users/:user_id'}, function () {
  this.route('edit');
  this.route('goals', function(){
    this.route('add');
    this.route('edit', {path: '/:goal_id/edit'});
  });
});

更新:

结束了
this.route('users', function () {
  this.route('add');
});

this.route('user', {path: '/user/:user_id'}, function () {
  this.route('edit');
  this.route('goals', function(){
    this.route('add');
    this.route('edit', {path: '/:goal_id/edit'});
  });
});

此外,我需要修复我的分支路径js,并了解this.modelFor(' user')以获取父模型,因为params被消耗。

2 个答案:

答案 0 :(得分:1)

在您的示例中,带参数的路径只需要位于始终具有ID的路径上:

this.route('users', function () {
  this.route('add');
  this.route('edit', {path: '/:id/edit'});
  this.route('goals', {path: '/:id/goals'}, function() {
    this.route('add');
    this.route('edit', {path: '/:goal_id/edit'});
  });
});

答案 1 :(得分:0)

看起来你需要尝试嵌套路线。它可能看起来像这样:

this.route('users', function () {
  this.route('add');
});

this.route('user', {path: '/user/:user_id'}, function () {
  this.route('edit');
  this.route('goals', function(){
    this.route('add');
  });
  this.route('goal', {path: '/goal/:goal_id', function(){
    this.route('edit');
  });
});