观察数组属性

时间:2013-11-27 02:34:27

标签: ember.js ember-data

我的模型中有一个属性是一个数组(浮点数),并且被我的Rails后端序列化并返回。然后我接受该字段,(在此示例中为monthlyData)并使用我编写的基于D3的组件绘制它。

{{bar-chart dataBinding="monthlyData" height=75 width =300}}

一切正常,除非数据发生变化。在我的组件的JS中,我有一个观察者,它观察组件的data属性并重新呈现视图,但是如果我的模型发生更改,则不会触发此观察者。如果我直接设置monthlyData字段,例如,它就会触发,例如在我的控制器中执行this.get('model').set('data', [1,2,3,4,5])

我试过两个都没有指定属性类型(即在我的模型中指定monthlyData: DS.attr()并使用自定义数组转换(希望返回的Ember.Array对观察者友好):

App.ArrayTransform = DS.Transform.extend({
  deserialize: function(serialized) {
    return Ember.A(serialized);
  },
  serialize: function(deserialized) {
    return deserialized.toArray();
  }
});

我正在使用Ember 1.3 beta 1和Ember Data 1.0.0 beta 4.使用数组作为数据类型的最佳实践是什么?如何使它们可观察?

1 个答案:

答案 0 :(得分:1)

您可能希望观察data.@each而不是data来监控阵列。