2

在 Ember 数据模型中使用数组的正确方法是什么?Tom Dale 指出 ember 在此评论中“嵌入了 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 日更新

自 Ember Data 1.0 beta 及更高版本以来,此答案中的代码不再有效。


您可以通过两种方式处理它:

第一种方法是定义一个模型App.ConditionValues,然后定义一个关系:

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

第二种方法是创建您自己的自定义转换

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 回答