2

Emberデータモデルで配列を使用する適切な方法は何ですか?Tom Daleは、残り火がこのコメントに「hasOne関係を埋め込んだ」と指摘していますが、実際のドキュメントや例を見つけることができません。

たとえば、次のCategoryようなプロパティを持つデータモデルがあります。conditionValues

App.Category = DS.Model.extend({
  name: DS.attr('string'),
  conditionValues: //this is an array
});

このプロパティに、次のようなサーバーから返された配列を入力したいと思います。Each category has many condition values。どうすればこれを行うことができますか?

[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
            )

    )
4

1 に答える 1

4

2014年2月26日更新

この回答のコードは、EmberData1.0ベータ以降では機能しなくなりました。


これは2つの方法で処理できます。

最初の方法は、と呼ばれるモデルを定義してからApp.ConditionValues、関係を定義することです。

App.Category = DS.Model.extend({
  //.. your attributes
  conditionValues: DS.hasMany('App.ConditionValues')
});

独自のカスタム変換を作成する2番目の方法。

DS.RESTAdapter.registerTransform('array', {
  serialize: function(value) {
    if (Em.typeOf(value) === 'array') {
      return value;
    } else {
      return [];
    }
  },
  deserialize: function(value) {
    return value;
  }
});

そしてあなたのモデルで:

App.Category = DS.Model.extend({
  //.. your attributes
  conditionValues: DS.attr('array')
});
于 2013-03-13T16:51:05.347 に答える