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 个嵌套路由:indexgroup .

当浏览器在 group 路由上时,我需要从组路由访问模型,在 campaigns route/controller.

但是我无法访问它。我总是得到它在 campaigns.js 路线上的模型。

如果您在其控制器上从 campaign.group 路线设置模型,您应该能够使用 controllerForcampaigns 路线,例如

// routes/campaigns.js
this.controllerFor('campaigns.group').get('your-prop')

您还可以从您的 group 路由发送一个动作并在父 campaigns 路由中处理它,沿着模型发送。这可能更符合 Ember 2.0 约定。

顺便说一句,如果您正在使用 Ember CLI(您应该这样做),您应该尝试摆脱 this.resource 并将所有 routes/templates/controllers 放入 pods。