使用:
Ember.VERSION : 1.0.0-rc.1
Handlebars.VERSION : 1.0.0-rc.3
jQuery.VERSION : 1.9.1
我有一个围绕自定义对象列表构建的模型,这些对象使用自定义转换进行序列化和反序列化。它看起来像这样:
DS.RESTAdapter.registerTransform('list', {
serialize: function(value) {
return value.mapProperty('line').join("\n");
},
deserialize: function(value) {
return (value || '').split(/\n/).
map(function(line) { return App.ListItem.new(line: line); });
}
});
App.ListItem = Ember.Object.extend({
line: ''
});
App.MySuperModel = DS.Model.extend({
list: DS.attr('list');
});
它工作正常,当我在列表中添加或删除项时模型变脏,但是当我更新ListItem的行时,它不会变脏,也不会在我回滚事务时返回到先前的状态。
有没有人知道如何让它发挥作用?我宁愿不将关系用于什么只是一个简单的列表,并在我的服务器上保持不变。
答案 0 :(得分:2)
找到解决问题的方法,不过我仍然会感谢一个更干净的方法会提供一个。
我做错了是:我正在操纵原始的线条数组,添加或删除线条,因此ember没有检测到任何变化(没有 .set('lines',...))它回滚到原来已更改的数组。
我现在正在做的是创建一个新的行数组(使用方便的 .copy()方法)并使用 .set('lines',...)< / strong>告诉我的模型它的行值发生了变化。
(结论:睡觉你的问题,他们倾向于解决自己^^)