我有一个测试用例,表明angular element.remove()
有时会从DOM中删除元素,并且在其他时候失败,即使我没有看到错误。这是JSFIDDLE。
要查看它是否有效,请单击Search
按钮(无需在输入字段中输入任何数据)。这有两件事:
这是应清除搜索按钮下方元素的代码。
$scope.searchTargets.forEach(function(target){
var resultNode = angular.element(document.getElementById('id_' + target.name));
if(resultNode != undefined)
resultNode.remove();
反复点击搜索显示搜索按钮下方的元素数量不断增加 - 即使它应该真正停留在3个元素。为什么remove()
方法在这里失败?
答案 0 :(得分:0)
看看这个分叉的小提琴:
您需要使用$scope.searchResults = [];
我还重构了一点代码,合并了3个循环,基本上可以在1个循环中完成。