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

How to get the data object from a single record in the 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(),但是如果过滤器 return 只有一条记录,那么 reduce 不会't return 正确的结果,所以我有以下条件:

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

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

使用get(recordsBySelectedShapeAndColor, 'firstObject')