干杯! 我有一些模型,它的一个属性是一个数组,但由于某些原因(我在服务器上使用mongoDB,这是嵌入式模型和ember数据的问题)我不能做这样的事情:
App.Foo = DS.Model.extend({
...
numbers: DS.hasMany('App.Bar')
)};
App.Bar = DS.Model.extend({
...
number: DS.attr('number')
});
我需要这样的东西:
App.Bar = DS.Model.extend({
numbers: DS.attr('array')
});
但是在ember-data中没有数组类型的属性,怎么样?
答案 0 :(得分:33)
我发现实际上你可以通过不指定类型来开箱即用数组属性。
#coffeescript
AskuWhiteLabel.SomeModel = DS.Model.extend
some_ids: DS.attr()
我正在使用它,当我这样做时
myModel.set('some_ids', [1,2,3])
myModel.save()
服务器的负载确实是我的数组。
答案 1 :(得分:3)
对于那些与我有同样问题的人: 看看这个答案:
或者您可以使用hasMany关系传递嵌入式模型,并在适配器中为嵌入式模型设置自定义主键(在我的情况下为“数字”)。看看这个测试:
答案 2 :(得分:1)
anArrayAttr: DS.attr('raw', { defaultValue: function() { return []; } })
来自我的同事#Theron Humiston'