如何从模型中的单个记录中获取数据对象?
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')
最近这成为我应用程序中的一个错误,虽然我不知道是什么改变了它(我没有升级 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')