拖放后如何刷新ng-repeat?

时间:2015-08-18 20:00:52

标签: javascript angularjs drag-and-drop jquery-ui-sortable

我正在AngularJs中开发一个需要文件夹树的页面。这个文件夹树是用ng-repeat制作的,它遍历一个元素数组。 今天我开始开发拖放功能来拖动文件夹中的文件。我使用了Sortable来实现拖放功能,但是,因为我不想重新排序树而是要删除INSIDE元素,我将行封装在另一个只包含该行的div中,这样当我在里面拖动时我可以诱骗用户认为我正在丢弃文件夹。

所以结构基本上是这个

<div class="node-dnd-container" ng-repeat="node in nodes">
  <div class="node">
    <!-- folder/file title, icon..... --->
  </div>
</div>

在我发现掉落发生之后,我做了一些神奇的事情来改变父结构,并且内部的所有孩子都刷新了连接到ng-repeat的模型。

现在发生的有趣的事情是刷新ng-repeat模块但是我没有在html中有一个node-dnd-container,里面有两个节点(因为拖放)。所以基本上ng-repeat正确刷新但不是正确的顺序,在ng-repeat中有一些不应该存在的东西。

我可以使用angular.copy修复此问题并对模型进行深层复制,但随后又与控制器分离,如果我在控制器中更改某些内容,则不会反映在视图中。

TL-DR:如何在没有深层处理的情况下完全刷新ng-repeat(刷新哈希值)(从控制器中分离视图)

0 个答案:

没有答案