我正在为我的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
答案 0 :(得分:1)
使view
了解代表模型数据的变化,您需要数据绑定才能正常工作。要使数据绑定正常工作,您需要使用对绑定敏感的正确函数,因此在对数组执行操作的情况下,您不能只使用vanilla push
而是使用pushObject
或对应removeObject
,同样适用于为属性设置新值,而点符号将起作用,它不会更新绑定,因此需要使用.set()
和.get()
等。< / p>
所以说,在这里你的工作jsbin。
希望它有所帮助。