element.remove()方法有时不起作用

时间:2015-11-30 14:01:35

标签: angularjs

我有一个测试用例,表明angular element.remove()有时会从DOM中删除元素,并且在其他时候失败,即使我没有看到错误。这是JSFIDDLE

要查看它是否有效,请单击Search按钮(无需在输入字段中输入任何数据)。这有两件事:

  1. 删除字段上方的元素和
  2. 删除字段下方的所有元素(第一次删除没有任何内容)并添加新元素。
  3. 这是应清除搜索按钮下方元素的代码。

    $scope.searchTargets.forEach(function(target){
        var resultNode = angular.element(document.getElementById('id_' + target.name));
        if(resultNode != undefined)
            resultNode.remove();
    

    反复点击搜索显示搜索按钮下方的元素数量不断增加 - 即使它应该真正停留在3个元素。为什么remove()方法在这里失败?

1 个答案:

答案 0 :(得分:0)

看看这个分叉的小提琴:

http://jsfiddle.net/wcca93qc/

您需要使用$scope.searchResults = [];

在每次搜索期间重置搜索结果

我还重构了一点代码,合并了3个循环,基本上可以在1个循环中完成。