我正在调用 $http get 方法,并且在成功回调中,基于该响应,我在 html 中得到的响应正在执行 ng-repeat 以迭代元素。另外,我根据 ng-repeat 的 $index 动态维护一些 div 的 id。现在,当我尝试根据它们的 id 设置这些 div 的 innerHTML 时,它给了我一个错误,因为当时尚未创建该元素。我对这种情况下发生的事情感到困惑。下面的模拟代码片段供您参考:
<tr ng-repeat-start= "dataArray in gridData" >
<td>
<span ng-bind="expanded ? '-' : '+'" ng-click="expanded = !expanded"></span>{{dataArray.name}}
</td>
<td>
<div id="th_{{$index + 1}}" ng-hide="expanded" ng-repeat="rcL1 in rch.rcs" >
<div ng-hide="expandedTreeCol" id="to_{{$parent.$index}}_{{$index}}">
</div>
</div>
</td>
</tr>
这是js片段:
$http.get(url)
.then(function(response) {
console.log(response);
$scope.gridData = response.data.data;
var rch = $scope.rch.rcs;
var grid_data = $scope.gridData;
document.getElementById("to_0_0").innerHTML = "1";
});
在尝试设置此 innerHTML 时,它显示“无法设置属性“innerHTML”为空。但是,当我完成代码的执行时,在 dom 中,我可以找到创建了该 id 的 div。但是,当我在回调函数中时,它似乎还没有创建。有人请解释这里发生了什么以及如何从 js 设置 innerHTML。
谢谢。