根据手册,我使用 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;
}
当我现在再次更改顺序时,我总是得到“旧”列表, vm.myList 确实显示正确,但显然没有被丢弃功能。
有人知道我在这里想念什么吗?非常感谢!