Ember.js 余烬数组数据
在余烬数据模型中使用数组的正确方法是什么?Tom Dale指出,ember在这方面“嵌入了hasOne关系”,但我找不到任何文档或实例 例如,我有一个类似so的Ember.js 余烬数组数据,ember.js,ember-data,Ember.js,Ember Data,在余烬数据模型中使用数组的正确方法是什么?Tom Dale指出,ember在这方面“嵌入了hasOne关系”,但我找不到任何文档或实例 例如,我有一个类似so的类别数据模型,它有一个名为条件值 App.Category = DS.Model.extend({ name: DS.attr('string'), conditionValues: //this is an array }); 我想用从我的服务器返回的数组填充此属性,如下所示每个类别都有许多条件值。一个人怎样才能做到这一点呢
类别
数据模型,它有一个名为条件值
App.Category = DS.Model.extend({
name: DS.attr('string'),
conditionValues: //this is an array
});
我想用从我的服务器返回的数组填充此属性,如下所示<代码>每个类别都有许多条件值。一个人怎样才能做到这一点呢
[condition_values] => Array
(
[0] => Array
(
[DisplayName] => Brand New
)
[1] => Array
(
[DisplayName] => Like New
)
[2] => Array
(
[DisplayName] => Very Good
)
[3] => Array
(
[DisplayName] => Good
)
[4] => Array
(
[DisplayName] => Acceptable
)
)
更新日期:2014年2月26日
自Ember Data 1.0 beta及更高版本以来,此答案中的代码不再有效
您可以通过两种方式处理此问题: 第一种方法是定义一个名为
App.ConditionValues
的模型,然后定义一个关系:
App.Category = DS.Model.extend({
//.. your attributes
conditionValues: DS.hasMany('App.ConditionValues')
});
第二种方法是创建自己的
然后在您的模型中:
App.Category = DS.Model.extend({
//.. your attributes
conditionValues: DS.attr('array')
});
更新日期:2014年2月26日
自Ember Data 1.0 beta及更高版本以来,此答案中的代码不再有效
您可以通过两种方式处理此问题: 第一种方法是定义一个名为
App.ConditionValues
的模型,然后定义一个关系:
App.Category = DS.Model.extend({
//.. your attributes
conditionValues: DS.hasMany('App.ConditionValues')
});
第二种方法是创建自己的
然后在您的模型中:
App.Category = DS.Model.extend({
//.. your attributes
conditionValues: DS.attr('array')
});
谢谢Teddy Zeenny,你认为哪种方法更好?我喜欢创建数组类型的想法,但如果它还不是Ember的一部分,我相信这是有原因的,所以有点倾向于第一种方法……我想说这取决于您的用例,如果
条件值
实际上是一个独立的模型,您希望对其执行CRUD操作,那么第一种方法更好。如果它只是一个在发送JSON之前动态生成的只读数组,那么使用选项2是安全的。这是有道理的,但是为什么在Ember中还没有实现呢?也许是为了防止混淆,因为大多数用例是第一选择。第二种情况非常罕见。对于潜伏者,当前的转换文档状态ex.2应该是:App.ArrayTransform=DS.transform.extend({…})
谢谢Teddy Zeenny,您认为哪种方法更好?我喜欢创建数组类型的想法,但如果它还不是Ember的一部分,我相信这是有原因的,所以有点倾向于第一种方法……我想说这取决于您的用例,如果条件值
实际上是一个独立的模型,您希望对其执行CRUD操作,那么第一种方法更好。如果它只是一个在发送JSON之前动态生成的只读数组,那么使用选项2是安全的。这是有道理的,但是为什么在Ember中还没有实现呢?也许是为了防止混淆,因为大多数用例是第一选择。第二种情况非常罕见。对于潜伏者,当前转换文档状态ex.2应该是:App.ArrayTransform=DS.transform.extend({…})