我在我的项目中使用Angular Drag and Drop Lists取得了巨大的成功,但是我有一个更复杂的用例,基本上能够访问嵌套的ng-repeat
数组。虽然存在this nested demo,但它处理不同的用例。
基本上我总结了以下结构以便于阅读:
<div ng-repeat="imgArray in document.images">
<div ng-if="doc._id === imgArray.document_template_id">
<ul dnd-list="placedList">
<li ng-repeat="img in imgArray.files" dnd-draggable="img" dnd-moved="img.splice($index, 1)">
<!-- Display -->
</li>
</ul>
</div>
</div>
但是当拖动完成并调用dnd-moved="img.splice($index, 1)"
时会抛出错误:TypeError: Cannot read property 'splice' of undefined
我也尝试使用dnd-moved="imgArray.files.splice($index, 1)"
,它会抛出相同的错误。不同之处在于,如果我使用img.splice
拖动列表中的现有元素,元素将会消失。没有被移动,只是删除并抛出TypeError,当我使用imgArray.files
元素不会消失或重新排序时,只抛出TypeError。
我确实需要创建嵌套的ng-repeat
,因为ng-if
是该过程绝对重要的一部分。
有关如何使.splice()
按预期工作的任何建议将不胜感激。
答案 0 :(得分:0)
这实际上会直接起作用,因为复制粘贴疏忽造成上述内容的问题。
该行:
<ul dnd-list="placedList">
需要:
<ul dnd-list="imgArray.files">
只是这种改变会使嵌套的ng-repeats工作。