对于淘汰赛,如果发生重新绑定,为什么 HTML 会重置为其初始状态?看下面的代码(http://jsfiddle.net/mgs_jsfiddle/KNnmC/)
<div data-bind="with: person">
<p>person <input type="text" data-bind="value: firstName"/></p>
</div>
<div>
<a href="#" data-bind="click: moveNext">moveNext</a>
</div>
$(function() {
function ViewModel() {
var self = this;
self.person = ko.observable({ firstName: "first"});
self.moveNext = function() {
self.person({ firstName: "second"});
};
};
ko.applyBindings(new ViewModel());
$("input").css("background-color", "#ffff00");
});
如果单击锚点,输入元素将失去其背景颜色。为什么不只是价值改变?
更新:我扩展了 jsFiddle 以表明它with
负责重新生成 HTML。见德克的回答。