-1

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

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

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

这是笨蛋

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

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

4

1 回答 1

0

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

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

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

于 2013-11-05T20:30:49.413 回答