2

我正在为我的 ember 数据属性实现一个数组

DS.JSONTransforms.array = {
  serialize: function(value) {
    return Em.isNone(value) ? [] : value ;
  },
  deserialize: function(value) {
    return Em.isNone(value) ? [] : value ;
  }
};

我创建了这个 jsbin 进行测试以向数组中添加和删除项目http://jsbin.com/avENazE/4/edit

如果我检查控制台

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

我可以看到新项目已正确添加到数组中,但未显示在视图中。

计数属性也未更新,此错误在保存模型时显示在控制台上

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

1 回答 1

1

view您了解需要数据绑定才能正常工作的表示模型数据的更改。为了使数据绑定正常工作,您需要使用对绑定敏感的正确函数,因此在对数组进行操作的情况下,您不能只使用 vanillapush而是使用pushObject对应removeObject的,这同样适用于设置新的属性的值,虽然点表示法会起作用,但它不会更新您的绑定,因此.set()需要.get()使用等。

也就是说,这里是你的工作jsbin

希望能帮助到你。

于 2013-08-29T10:20:35.873 回答