Ember通过Id找到模型

时间:2016-09-23 12:16:27

标签: javascript jquery ember.js

在我的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对象

1 个答案:

答案 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访问)。