传递父路由的模型,以一个孩子的路线在emberjs我有以下的路由器定义

问题描述:

传递父路由的模型,以一个孩子的路线在emberjs我有以下的路由器定义

export default Router.map(function() { 
    this.route('user', { path: '/users/:username'}, function() { 
     this.route('tasks', { path: '/tasks'}); 
    }); 
}); 

然后我有以下途径:

// routes/user.js 
export default Ember.Route.extend({ 
    model(params) { 
     return params.username; 
    } 
}); 

// routes/user/index.js 
export default Ember.Route.extend({ 
    model() { 
     // how do i get the username? 
     return ajax(/* get user's profile */); 
    } 
}); 


// routes/user/tasks.js 
export default Ember.Route.extend({ 
    model() { 
     // how do i get the username? 
     return ajax(/* get user's tasks */); 
    } 
}); 

而这个模板:

{{!-- templates/user.hbs --}} 
<h1>{{model}}</h1> 
{{outlet}} 

如何获取用于ajax请求中的子路由的用户名?

您可以使用paramsFor或modelFor:

modelFor:http://emberjs.com/api/classes/Ember.Route.html#method_modelFor

return ajax(baseUrl + "/" + this.modelFor('user') + "/profile"); 

paramsFor:http://emberjs.com/api/classes/Ember.Route.html#method_paramsFor

return ajax(baseUrl + "/" this.paramsFor('user').username + "/tasks"); 
+0

辉煌。谢谢! – David