Использование KnockoutJS с отсоединенными узлами
То, что я хочу сделать, это отсоединить некоторые узлы с помощью метода отсоединения jQuery, обновить мою ViewModel, присоединить мои узлы обратно и получить значения, которые будут обновлены.
Это возможно?
Вот этополная скрипка из-за чего я снимаю. По сути, я хотел бы иметь возможность перемещаться слева направо, нажимать кнопку отсоединения, обновлять и прикреплять и иметь новые значения в текстовых полях.
UPDATE
Основываясь на ответе RP, лучше всего предположить, что это соответствует вашему варианту использования, - прикрепить их к домену.hiddenобновите вашу viewmodel, а затем покажите ваши узлы. Как-то так у меня работает
<code>$("#updateAndAttach").click(function () { var junk = $("<div />").css("display", "none"); junk.append(nodes); $("#home").append(junk); vm.a("AAA"); vm.b("BBB"); $(nodes).unwrap(); }); </code>
END UPDATE
Вот полный код:
JavaScript
<code>$(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"); }); })(); </code>
HTML:
<code><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> </code>