Ember.js 具有共享模型的嵌套路由
Ember.js nested routes with shared models
我有这个 router.js:
this.resource('campaigns', {path:'/campaigns'}, function() {
this.route('index', {path: '/'});
this.route('group', {path: '/*campaign_group_id'});
});
所以这是一个名为 campaigns 的路由,以及 2 个嵌套路由:index 和 group .
当浏览器在 group 路由上时,我需要从组路由访问模型,在 campaigns route/controller.
但是我无法访问它。我总是得到它在 campaigns.js 路线上的模型。
如果您在其控制器上从 campaign.group
路线设置模型,您应该能够使用 controllerFor
从 campaigns
路线,例如
// routes/campaigns.js
this.controllerFor('campaigns.group').get('your-prop')
您还可以从您的 group
路由发送一个动作并在父 campaigns
路由中处理它,沿着模型发送。这可能更符合 Ember 2.0 约定。
顺便说一句,如果您正在使用 Ember CLI(您应该这样做),您应该尝试摆脱 this.resource
并将所有 routes/templates/controllers 放入 pods。
我有这个 router.js:
this.resource('campaigns', {path:'/campaigns'}, function() {
this.route('index', {path: '/'});
this.route('group', {path: '/*campaign_group_id'});
});
所以这是一个名为 campaigns 的路由,以及 2 个嵌套路由:index 和 group .
当浏览器在 group 路由上时,我需要从组路由访问模型,在 campaigns route/controller.
但是我无法访问它。我总是得到它在 campaigns.js 路线上的模型。
如果您在其控制器上从 campaign.group
路线设置模型,您应该能够使用 controllerFor
从 campaigns
路线,例如
// routes/campaigns.js
this.controllerFor('campaigns.group').get('your-prop')
您还可以从您的 group
路由发送一个动作并在父 campaigns
路由中处理它,沿着模型发送。这可能更符合 Ember 2.0 约定。
顺便说一句,如果您正在使用 Ember CLI(您应该这样做),您应该尝试摆脱 this.resource
并将所有 routes/templates/controllers 放入 pods。