我根据它的手册使用angular-ui-tree模块对列表进行排序。删除项目后,会有一个发送到后端服务的列表,该列表会保存新的排序顺序。
vm.treeOptions = {
dropped : function(e) {
restService.post('comments/' + currentId + '/settree', vm.myList);
}
};
<div ui-tree="vm.treeOptions">
<ol ui-tree-nodes ng-model="vm.myList">
<li ng-repeat="item in vm.myList track by $index" ui-tree-node>
<div class="tree-node tree-node-content">
<i ui-tree-handle class="fa fa-arrows"></i> {{ item.name }}
</div>
</li>
</ol>
</div>
但是 - 一旦保存过程完成,就会触发一个事件(我连接到一个WebSockets服务器,一旦内容更新就发出事件,发送新内容)。由于某些情况,它可能会给出略微修改的列表。因此,一旦事件被触发,我将vm.myList替换为新内容。
$scope.$on('ws:list_changed', function(m, data) {
updateList(data);
$scope.$apply();
});
function updateSpeakersList(data) {
vm.speakersList = data;
}
当我现在再次更改订单时,我总是得到#34; old&#34;列表,vm.myList确实显示正确,但显然没有吸收到删除函数。
有人知道我在这里缺少什么吗?非常感谢!