传递父路由的模型,以一个孩子的路线在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");
辉煌。谢谢! – David