2016-09-23 65 views
0

找到模型在我的余烬的应用程序,我有一个复杂的模型,看起来像下面(一种含有2维数组)灰烬凭身份证

[ 
    [ 
     { 
      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

你在你的应用中使用EmberData吗? – Crabar

+0

我把它作为依赖项,但没有真正使用它 – testndtv

回答

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