Ember数据自定义数组推送和删除

时间:2013-08-29 09:40:39

标签: javascript ember.js ember-data

我正在为我的ember数据属性

实现一个数组
DS.JSONTransforms.array = {
  serialize: function(value) {
    return Em.isNone(value) ? [] : value ;
  },
  deserialize: function(value) {
    return Em.isNone(value) ? [] : value ;
  }
};

我创建了这个jsbin for test,用于向数组http://jsbin.com/avENazE/4/edit

添加和删除项目

如果我检查控制台

model.get('pages').push('hi');
console.log(model.get('pages'));

我可以看到新项目是核心添加到数组中,但不会显示在视图上。

此外,count属性不会更新,并且在保存模型时控制台上会显示此错误

Uncaught TypeError: You must pass a resolver function as the sole argument to the promise constructor 

1 个答案:

答案 0 :(得分:1)

使view了解代表模型数据的变化,您需要数据绑定才能正常工作。要使数据绑定正常工作,您需要使用对绑定敏感的正确函数,因此在对数组执行操作的情况下,您不能只使用vanilla push而是使用pushObject或对应removeObject,同样适用于为属性设置新值,而点符号将起作用,它不会更新绑定,因此需要使用.set().get()等。< / p>

所以说,在这里你的工作jsbin

希望它有所帮助。