到另一个资源抛出未捕获的#error

我有一个'拥有'其他模型(belongsTo,hasMany)的模型,我试图以多步骤的形式创建每个模型。

我将每个link-to都传递给父模型, campaign ,以便在创建其他记录和显示现有子项时使用它。 当我最初有一个嵌套的route ,这起作用,但是当我将其更改为resourcecampaign模型看起来并未通过。

我的路由器:

App.Router.map(function () {
  this.resource('campaigns', function() {

    // I originally had a this.route('step2') which I sent the model to and it works

    this.resource('campaign', { path: '/:campaign_id' }, function() {
      this.route('edit');

      this.resource('ad-groups', function() {
        this.route('new'); // new route is irrelevant in this question
      });

    });
  });
});

因此,在campaign/edit路由器中,我保存模型并将其转换为以ad-groups/index系列为模型的ad-groups/index路线:

App.CampaignEditRoute = Ember.Route.extend({
  actions: {
    save: function(campaign) {
      campaign.save().then(function() {
        this.transitionTo('ad-groups', campaign);
      }.bind(this));
    }
  }
});

但这是它呈现模板的地方,但Ember检查器显示它没有加载模型。 和我的模型的完整性的相关部分:

App.Campaign = DS.Model.extend({
  adGroups: DS.hasMany('ad-group', { async:true }),
  ...
});

App.AdGroup = DS.Model.extend({
  campaign: DS.belongsTo('campaign'),
  ...
});

如果我手动将广告系列返回到ad-groups/indexmodel钩子中,那么Ember将抛出Uncaught #error ,并呈现模板,但不显示任何模型数据。

编辑:所以我试图通过将model设置为this.modelFor('campaign')实现下面的解决方案,并且抛出了另一个Uncaught #error 。 奇怪的是,当我删除我的FIXTURES中的关系时,不再有错误,但当然我失去了这种关系。 我的装置:

App.Campaign.FIXTURES = [
  // If I remove the adGroups: [1] it removes the Uncaught #error but I lose the relationship
  { id: 1, name: "Campaign #1", app: 1, adGroups: [1] },
  { id: 2, name: "Campaign #2", app: 1 }
];

App.AdGroup.FIXTURES = [
  { id: 1, name: 'My first AdGroup', bid: 2, budget: 100, campaign: 1 }
];

我之前遇到类似的问题,我通过向我的campaign模型中添加{ async: true }来修复它,如上所示。 所以这看起来更像是问题,诚然异步混淆了我一点。 谁能阐明为什么会发生这种情况?


毕竟,这两部分解决方案是:

1.)不是使用link-to传递model而是实现这一点:

App.MyRoute = Ember.Route.extend({
  model: function() {
    return this.modelFor('campaign');
  },
  ...
});

在我看来,这不应该是必要的,但它实际上非常好,因为它使用父路线的模型 - 链接作为参考。

2.)Ember抛出的剩余Uncaught #error错误极其无益。 事实证明,我在模板中链接到adgroup ad-group而不是ad-group

{{link-to 'adgroup'}}而不是{{link-to 'ad-group'}}

链接地址: http://www.djcxy.com/p/65585.html

上一篇: to to another resource throwing uncaught #error

下一篇: Filtering child records in Ember Data