2016-02-29 31 views
0

我遇到了設置路由的問題。我有帶有路由和參數的餘輝問題

this.route的路徑組( '用戶',函數(){

/users 

/users/add 

以及this.route( '用戶',{路徑:「/用戶/:USER_ID'},函數(){

的路線一樣

/users/1/edit 

/users/1/goals 

/users/1/goals/1 

我的問題是,{{#鏈接到 '用戶'}}用戶{{/鏈接到}}導致鏈接到「/ 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'}); 
    }); 
}); 

UPDATE: 結束了

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( '用戶'),以獲得自參數被消耗後的父模型。

回答

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'); 
    }); 
}); 
+0

是啊,我築巢,我如果我需要多個參數,不知道如何進行嵌套,但有時候有0或1。 – Xeridea

+0

@Xeridea - 我更新了這個以匹配您的新請求。 –

+0

儘管目標是一起的,但用戶和用戶都是這樣分開的。我的另一個問題最終沒有正確的分支路線,需要從目標訪問父模型。 – Xeridea

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'}); 
    }); 
}); 
+0

這將工作,除了users.goals.add我需要知道用戶ID關聯。無論如何。如果它可以工作,這種方式會更清潔。 – Xeridea

+0

您可以從params散列'params [:id]'獲得用戶標識' –