在我的Ember应用程序中,我有一个看起来像下面的复杂模型(包含二维数组)
[
[
{
id: 'Section1_123',
label: 'abc'
},
{
id: 'Section1_456',
label: 'xyz'
}
]
],
[
[
{
id: 'Section2_123',
label: 'abc'
},
{
id: 'Section2_456',
label: 'xyz'
}
]
]
还有很多其他属性,但这是整体结构。
现在我的问题是我可以向下钻取吗?找到一个特定的对象。它有唯一的ID(如上例所示)
所以我需要像model.findBy(Id)这样的东西 然后我需要更改/设置该对象的一些值。说我想改变obj.label来自' abc'到' abc_NEW'
添加,主模型实际上是一个简单的JS数组......但是内部对象(例如id为' Section1_123'等)实际上是Ember对象
答案 0 :(得分:0)
在Ember中处理数据的最常用方法是EmberData。而且由于Ember的主要信条是“约定优于配置”,因此在我看来,在Ember中常见的方式是最佳方式。
有很多方法可以处理您的数据格式。我建议为每个项目创建模型:
import DS from 'ember-data';
export default DS.Model.extend({
label: DS.attr()
// other properties
});
然后,您可以根据this article制作自定义序列化程序。目标是将您的数组转换为EmberData模型列表。
在此之后,您可以使用标准EmberData functions to work with data(当然包括按对象ID访问)。