乾杯!私はいくつかのモデルを持っており、その属性の1つは配列ですが、いくつかの理由で(サーバーでmongoDBを使用しており、組み込みモデルとember-dataに問題があります)次のようなことはできません。
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リレーションを持つ埋め込みモデルを渡し、アダプターで埋め込みモデルのカスタム主キーを設定することもできます(私の場合は「number」)。このテストを見てください:
anArrayAttr: DS.attr('raw', { defaultValue: function() { return []; } })
私の素晴らしい同僚「TheronHumiston」から