19

乾杯!私はいくつかのモデルを持っており、その属性の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には配列型の属性はありません。

4

3 に答える 3

34

実際には、型を指定しないだけで、すぐに配列のプロパティを使用できることがわかりました。

#coffeescript

AskuWhiteLabel.SomeModel = DS.Model.extend
    some_ids: DS.attr()

私はこれを使用しています、そして私がこれをするとき

myModel.set('some_ids', [1,2,3])
myModel.save()

サーバーへのペイロードは、実際には私の配列です。

于 2014-09-29T19:59:05.677 に答える
3

私と同じ問題を抱えている人のために:この答えをチェックしてください:

https://stackoverflow.com/a/13884238/1662820

または、hasManyリレーションを使用して埋め込みモデルを渡し、アダプターで埋め込みモデルのカスタム主キーを設定することもできます(私の場合は「number」)。このテストを見てください:

https://github.com/emberjs/data/blob/master/packages/ember-data/tests/integration/embedded/embedded_without_ids_test.js

于 2013-02-15T11:27:36.720 に答える
2
anArrayAttr: DS.attr('raw', { defaultValue: function() { return []; } })

私の素晴らしい同僚「TheronHumiston」から

于 2016-05-09T19:19:21.623 に答える