我正在为我的 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'));
我可以看到新项目已正确添加到数组中,但未显示在 View 中。
计数属性也没有更新,这个错误在保存模型时显示在控制台上
Uncaught TypeError: You must pass a resolver function as the sole argument to the promise constructor
最佳答案
要使 view
了解表示模型数据的更改,您需要数据绑定(bind)才能正常工作。为了使数据绑定(bind)正常工作,您需要使用对绑定(bind)敏感的正确函数,因此在对数组进行操作的情况下,您不能只使用普通的 push
而是 pushObject
或对应的 removeObject
,这同样适用于为属性设置新值,而点符号将起作用,它不会更新您的绑定(bind),因此 .set()
和 .get()
需要用到等
所以说,这里是您的工作 jsbin .
希望对您有所帮助。
关于javascript - Ember 数据自定义数组推送和删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18507390/