1

根据手册,我使用 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 确实显示正确,但显然没有被丢弃功能。

有人知道我在这里想念什么吗?非常感谢!

4

0 回答 0