Knockout.js 修饰元素的敲除绑定

Knockout.js 修饰元素的敲除绑定,knockout.js,Knockout.js,在我当前的项目中,在某些情况下,我需要更改应用了敲除绑定的某些元素的位置和排序。我正在使用jQuery更改位置或修改这些元素。但是这种修改会从我修改的元素中删除绑定 我通过修改knokocutjs.com中的第一个示例来演示这个问题 var ViewModel = function(first, last) { this.firstName = ko.observable(first); this.lastName = ko.observable(last); this.fullName =

在我当前的项目中,在某些情况下,我需要更改应用了敲除绑定的某些元素的位置和排序。我正在使用jQuery更改位置或修改这些元素。但是这种修改会从我修改的元素中删除绑定

我通过修改knokocutjs.com中的第一个示例来演示这个问题

var ViewModel = function(first, last) {

this.firstName = ko.observable(first);
this.lastName = ko.observable(last);

this.fullName = ko.computed(function() {
    return this.firstName() + " " + this.lastName();
}, this);
};

ko.applyBindings(new ViewModel("Planet", "Earth"));

    $('#test').click(function(){

    var firstName = $('body').find('p:eq(0)');
    $('body').find('p:eq(0)').remove();
    $(firstName).insertBefore($('body').find('p:eq(0)'));

});
})


!

你到底想要什么?你期望的结果是什么?单击按钮时应该做什么?不要为此使用jQuery。坚持MVVM风格的淘汰赛,让位置之类的东西从你的VM中浮现出来,让视图反映出来。在这种情况下,依赖敲除更新视图:当您更改视图模型时,对部分视图进行排序。在我的实际方法中,我有一个网格,我使用敲除填充添加删除列添加行等一切都很好。但我需要添加拖放列,对于这种方法,我使用的是jebairds拖放列插件。这个插件通过交换列来改变列的位置,这破坏了我的敲除绑定。我不能包括实际的样本,因为它都是db驱动的