我正在使用knockout绑定一个UL。 我希望用户能够拖放LI,并让我的视图模型更新排序。
拖放正在工作,我有正确的事件在我的jquery中运行,但我不知道如何进行更新。
我已经查看了文档,但找不到任何信息。
我创建了一个fiddle以使我所做的解释更容易理解。
任何建议都将非常棒!
更新了jsfiddle链接
我正在使用knockout绑定一个UL。 我希望用户能够拖放LI,并让我的视图模型更新排序。
拖放正在工作,我有正确的事件在我的jquery中运行,但我不知道如何进行更新。
我已经查看了文档,但找不到任何信息。
我创建了一个fiddle以使我所做的解释更容易理解。
任何建议都将非常棒!
更新了jsfiddle链接
var view_model = new ViewModel(initialData);
ko.applyBindings(view_model);
$(function() {
$( "#sortable" ).sortable({
revert: true,
stop: function(event, ui) { console.log("stop event")},
start : function ( event, ui ) {
ui.item.data( 'previous_index', ui.item.index() );
},
// start
update : function ( event, ui ) {
var question = view_model.questions.splice(
ui.item.data( 'previous_index' ), 1
)[0];
view_model.questions.splice( ui.item.index(), 0, question );
ui.item.removeData( 'previous_index' );
}
// update
});
});
参考资料:
jQuery UI Sortable,如何在更新事件中确定当前位置和新位置?
Ryan Niemeyer为此编写了一个Knockout插件:
这是一篇更新的博客文章: