【问题标题】:misunderstanding ember changes in "Ember Data : 1.13.12 "误解“Ember Data : 1.13.12”中的 ember 更改
【发布时间】:2015-09-15 10:18:28
【问题描述】:

我将 Ember Data 更新到 1.13.12 版,但我的旧资源出现了一些问题。

例子:

我有代码

   this.store.find('user', params).then(function(results) {
     self.get('experts').addObjects(results); // add users to 'experts' filed in controller
  });

在“Ember Data : 1.13.12”中,下面的代码不起作用,出现错误:

  "TypeError: Object [object Object] has no method 'getRecord'"

我找到的解决方案

   self.get('experts.content').addObjects(results.get('content'));

下一个问题:

  return this.store.query('review', {'expert_id': expertId}).then(function(data){
        data.get('content').forEach(function(item) {
            item.set('currentUser', self.modelFor('e'));
        });
        return data;
    });

itemClass 的对象,现在是 DS.INTERNALMODEL 的对象,不包含 set 方法

从调试器中我找到了解决方案:

  item.record.set('currentUser', self.modelFor('e'));

问题: 我所有的解决方案看起来都不好,新的 ember 数据有什么变化? 解决此问题的最佳做法是什么?

我阅读了更改日志,但没有找到任何与我的问题相关的信息

【问题讨论】:

标签: ember.js ember-data


【解决方案1】:

您应该能够在data 上使用forEach 而不是data.content,因为store.query 解析为RecordArray,它扩展了ArrayProxy

return this.store.query('review', { expert_id: expertId}).then((data) => {
    let model = self.modelFor('e');
    data.forEach((item) => {
        item.set('currentUser', model);
    });
    return data;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    相关资源
    最近更新 更多