[英]Ember.js array as model's property
干杯! 我有一些模型,它的一個屬性是一個數組,但由於某些原因(我在服務器上使用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中沒有數組類型的屬性,怎么樣?
我發現實際上你可以通過不指定類型來獲得開箱即用的數組屬性。
#coffeescript
AskuWhiteLabel.SomeModel = DS.Model.extend
some_ids: DS.attr()
我正在使用它,當我這樣做時
myModel.set('some_ids', [1,2,3])
myModel.save()
服務器的有效負載確實是我的數組。
對於那些和我有同樣問題的人:看看這個答案:
或者,您可以使用hasMany關系傳遞嵌入式模型,並在適配器中為嵌入式模型設置自定義主鍵(在我的情況下為“數字”)。 看看這個測試:
anArrayAttr: DS.attr('raw', { defaultValue: function() { return []; } })
來自我真棒的同事'Theron Humiston'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.