Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 访问呈现的DOM元素_Angularjs_Cordova - Fatal编程技术网

Angularjs 访问呈现的DOM元素

Angularjs 访问呈现的DOM元素,angularjs,cordova,Angularjs,Cordova,我试图在AngularJS渲染DOM元素后访问它 在我的模板中,我有一个div: <ion-view view-title="MAP" name="tab-map"> <ion-content has-tabs="true" style="text-align:center;"> <div style="width:100%;height:400px;" ng-attr-id="{{'canvas_map_'+place.id}}" clas

我试图在AngularJS渲染DOM元素后访问它

在我的模板中,我有一个div:

<ion-view view-title="MAP" name="tab-map">
    <ion-content has-tabs="true" style="text-align:center;">
        <div style="width:100%;height:400px;" ng-attr-id="{{'canvas_map_'+place.id}}" class="map"></div>
    </ion-content>
</ion-view>
但不幸的是,我收到了预渲染代码:{{'canvas\u map\u'+place.id}},我想得到渲染的id名称,即canvas\u map\u 2。。。有人能帮我吗

您可以使用$timeout和$viewContentLoaded来实现您的要求

   $scope.$on('$viewContentLoaded', (event) => {
              $timeout(()=> {//When $timeout used , the code inside it is executed in next $digest cycle
                var mapId = document.querySelector('.map').id;
                console.log("Map id: "+mapId);
          },0);
    }

您可以使用timeout。谢谢,但这是更好的方法还是只是一种解决方法?您可以使用它。我用同样的,从来没有任何问题。如果你找到更好的,让我看看!我会的!我正在阅读这个主题,anwer的作者推荐使用。实现DOM操作的指令。。。对我的回答范围有限。您需要对DOM进行操作,而不是必须在指令内部。
   $scope.$on('$viewContentLoaded', (event) => {
              $timeout(()=> {//When $timeout used , the code inside it is executed in next $digest cycle
                var mapId = document.querySelector('.map').id;
                console.log("Map id: "+mapId);
          },0);
    }