【问题标题】:Ember.js nested routes with shared modelsEmber.js 嵌套路由与共享模型
【发布时间】:2015-04-10 14:21:33
【问题描述】:

我的 router.js 上有这个:

this.resource('campaigns', {path:'/campaigns'}, function() {
  this.route('index', {path: '/'});
  this.route('group', {path: '/*campaign_group_id'});
});

所以它是一个名为 campaigns 的路由,以及 2 个嵌套路由:indexgroup

当浏览器在 group 路由上时,我需要在活动路由/控制器上从组路由访问模型。

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

【问题讨论】:

  • 你想对模型做什么?如果您试图让父路由/控制器知道子控制器正在尝试做什么,则有点违反了关注点分离。
  • 我只是在尝试访问子模型承诺的属性,以便在该广告系列父路由上使用。
  • 你为什么不使用活动路由模型来检索你需要的东西?
  • 不,我不能,否则活动模型无法访问路线活动/组的参数。我需要这些参数来正确调用 API。

标签: ember.js ember-data ember-cli


【解决方案1】:

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

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

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

顺便说一句,如果您使用的是 Ember CLI(您应该使用),您应该尝试摆脱 this.resource 并将所有路由/模板/控制器放在 pod 中。

【讨论】:

    猜你喜欢
    • 2013-01-16
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    相关资源
    最近更新 更多