这是一个两部分的问题。
首先,我在模板绑定上使用 afterrender 来完成每次模板呈现新数据时的操作。这工作正常......除了它工作得太正常了。除非添加或删除数据,否则它不会触发。
其次,为了解决第一个“问题”,我认为我需要编写自定义“更新”并检测数据是否已更改。这又是有道理的,但是我意识到映射中的更新函数也遵循“仅在添加或删除数据时运行”的想法。
所以我想我需要围绕映射模型的一个特定属性进行更新,例如:
var dataMappingOptions = {
key: function(data) {
return data.id;
},
create: function(options) {
return new Person(options.data);
},
update: function(options) {
// if first changed, doSomething();
return options.target;
},
'first': {
update: function(options) {
// if first changed, doSomething();
return options.target.first;
}
}
};
但这只会变成一团糟,甚至不起作用。
如果你想检查一下,这里是FIDDLE 。
长话短说,我确定必须有一种方法可以在属性更新时订阅它?我想也许你只需要制作计算出的 observables?我要把这个扔出去,看看瑞恩是否想教我,因为他已经教过很多次了:)