我要做的是使用jQuery的分离方法分离一些节点,更新我的ViewModel,附加我的节点,并更新值。
这可能吗?
这是我正在拍摄的一个完整的小提琴。基本上,我希望能够从左到右,单击分离、更新和附加,并在文本框中有新的值。
更新
根据 RP 的回答,假设这适合您的用例,最好的选择是将它们附加到 dom hidden,更新您的视图模型,然后显示您的节点。像这样的东西对我有用:
$("#updateAndAttach").click(function () {
var junk = $("<div />").css("display", "none");
junk.append(nodes);
$("#home").append(junk);
vm.a("AAA");
vm.b("BBB");
$(nodes).unwrap();
});
结束更新
这是完整的代码:
JavaScript
$(function () {
function ViewModel() {
this.a = ko.observable("a");
this.b = ko.observable("b");
}
var vm = new ViewModel();
ko.applyBindings(vm, document.getElementById("home"));
var nodes = null;
$("#detach").click(function () {
nodes = $("#home").children().detach();
});
$("#attach").click(function () {
$("#home").append(nodes);
});
$("#update").click(function () {
vm.a("AAA");
vm.b("BBB");
});
})();
HTML:
<div id="home">
<input type="text" data-bind="value: a" />
<input type="text" data-bind="value: b" />
</div>
<button id="detach">Detach</button>
<button id="update">Update</button>
<button id="attach">Attach</button>