2015-11-30 30 views
2

我有一個測試用例,顯示角度element.remove()有時會從DOM中刪除元素,並且在其他時間失敗,即使我沒有看到錯誤。這是JSFIDDLEelement.remove()方法有時不起作用

要查看它的工作情況,請單擊Search按鈕(無需在輸入字段中輸入任何數據)。這做了兩兩件事:

  1. 刪除字段上方的元素和
  2. 刪除下面的字段的任何元素(沒有圍繞在第一時間刪除),並增加了新的問題。

這是應該清除搜索按鈕下方元素的代碼。

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

上的搜索點擊多次表明,下方的搜索按鈕元素的數量不斷增加 - 即使它確實應該在3個要素來住。爲什麼remove()方法在這裏失敗?

回答

0

看看這個叉形小提琴:

http://jsfiddle.net/wcca93qc/

則需要使用重置每次搜索時搜索結果$scope.searchResults = [];

我也重構的代碼了一下,合併3個循環是基本上可以在1個循環中完成。