Angularjs 在angular中,如何知道模型何时已以html呈现

Angularjs 在angular中,如何知道模型何时已以html呈现,angularjs,Angularjs,目前我正在使用angular构建一个原型应用程序,我有一个要显示的人员列表,因此我为该人员构建了一个模型。从http加载人员列表时,将呈现模型。这很有效 <li class="person" ng-repeat="person in people" > <h1>{{person.displayname}}</h1> <div class="knockout"> <div id="person-{{person.

目前我正在使用angular构建一个原型应用程序,我有一个要显示的人员列表,因此我为该人员构建了一个模型。从http加载人员列表时,将呈现模型。这很有效

<li class="person" ng-repeat="person in people" >
   <h1>{{person.displayname}}</h1>
     <div class="knockout">
        <div id="person-{{person.displayname}}"></div> // to add d3.js svg
      </div>    
</li>
目前,我要做的是为每个html元素添加svg设置一个超时,但最好在模型的html完全呈现后立即得到通知


谢谢

问题在于,您的人物数组是在成功方法保留后呈现的。这是正常的角度行为,因为它们在JavaScript中无法拦截代码。回调完成后,Angular将检查更改。当您尝试添加svg内容时,DOM中不存在任何ID

您可以使用
$scope.$watchCollection(“people”,function(){…
)并在回调中呈现您的内容,但是将功能绑定到ids会影响angular的工作方式。请尝试为d3.js找到一个angular包装器,您可以在没有ids的情况下将其作为指令使用

    $http.get(href).success(function(data) {                
        $scope.people= data.people; // update the model
            var svg = d3.select('#person-'+data.people[0].name)
                   .append("svg");          
    }).error(function(data, status, headers, config) {

    });