当与角度1.4.0-rc2中的ng-animate一起使用时,ng-repeat仍会显示已删除的项目

时间:2015-05-22 16:52:46

标签: javascript angularjs angularjs-ng-repeat

当我尝试将我的应用程序迁移到Angular 1.4.0-rc2(候选版本)时,我遇到了问题:当我加载ngAnimate作为我的应用程序的依赖项时,ngRepeat指令停止删除从HTML DOM中删除的项目。当我没有加载ngAnimate或使用Angular 1.3.x时,问题不会出现。

Plunker app demonstrating problem

这是1.4.0-rc2中的错误还是我做错了什么?我看了1.4的变化,但它并没有帮助我解决这个问题。

1 个答案:

答案 0 :(得分:1)

我的问题最终在angularjs讨论组中被回答:https://groups.google.com/forum/#!topic/angular/ZSUB17o4jd0

这是答案,所有功劳归功于桑德埃利亚斯。

在单个元素上使用多个指令会抛出动画师。我明白为什么会这样,但在我看来,动画师应该在控制台中发出警告/错误。 你的问题很容易解决:

<div ng-repeat="s in vm.wrapper.strings track by $index">
    <ng-form name="blahForm">
        <select ng-model="vm.wrapper.strings[$index]" ng-options="obj.value as obj.name for obj in vm.options" name="xxx" required>
            <option>Wybierz</option>
        </select>
    </ng-form>
</div>

将ngForm放在自己的元素中,它会像你期望的那样工作。