如何从模型中的单个记录中获取数据对象?

时间:2017-11-10 16:59:08

标签: ember.js model

最近这成了我的应用程序中的一个错误,虽然我不知道是什么改变了它(我没有升级Ember的版本,仍然是1.13)。我需要知道的是如何以传统方式访问模型上单个记录的对象。

我有以下代码根据其他两个属性过滤我的model

  recordsBySelectedShapeAndColor = get(this, "model").filter(function(rec) {
    //filter the model by the chosen shape and color
    return (
      get(rec, "shape") === theShape &&
      get(rec, "color") === theColor
    );
  });

然后我需要创建那些我正在使用reduce()的过滤记录的摘要,但如果该过滤器只返回一条记录,则reduce不会返回正确的结果,所以我有以下条件:

if (recordsBySelectedShapeAndColor.length < 2) {
  summary = recordsBySelectedShapeAndColor[0]._data;
} else {
  summary = recordsBySelectedShapeAndColor.reduce(function(a, b) {
...
}

if中的行不再返回一个简单的对象,因此我将其更改为summary = recordsBySelectedShapeAndColor[0]._internalModel._data;并且它有效,但看起来很可疑(._data总是这样做)。访问下划线属性是代码味吗?如果是这样,我怎样才能从模型中的单个记录中获取数据?

1 个答案:

答案 0 :(得分:1)

使用get(recordsBySelectedShapeAndColor, 'firstObject')