修改ngModel后,列表变空

时间:2013-11-05 20:19:13

标签: jquery angularjs drag-and-drop

在两个列表之间拖放,我本来可以使用angular-dragdrop,不幸的是它在IE8中不起作用,所以我们必须使用jquery一个。

拖放工作正常,直到用户在输入框(具有ngModel)中输入内容,然后列表变空。

我为输入框设置了一个手表,列表中有项目,但它们没有显示。

这里是plunker

http://plnkr.co/edit/WQSXtyj3sJ0n14IXv7YN?p=preview

编辑: 我只需添加var row = {logon:item.innerText}就可以了。并将其推入obj1 obj2数组。

1 个答案:

答案 0 :(得分:0)

无论何时使用DOM,您都应该使用指令。我不确定接收器函数中的所有代码应该做什么,但最终导致Angular失去对数据的引用。看起来你正在使用DOM的innerText并将其转换为数组并用它覆盖模型。您的模型是一个对象数组,但您将其转换为文本数组?

当您更改模型时,您看到它消失的原因是您在此之前永远不会触发$digest。然后$ digest发生,你的ng-repeats运行,并且不再有任何正确的数据,所以它们什么都不返回。此外,将ng-model分配给列表元素不会执行任何操作。那里没有功能。

我认为你应该在进一步学习之前学习如何创建指令。要解决当前的问题,你可以使用现有的拖放指令:http://codef0rmer.github.io/angular-dragdrop/#/你说它不适用于IE8,但只要你遵循它就没有理由它不适用于IE8 AngularJS文档中概述的IE8预防措施:http://docs.angularjs.org/guide/ie