Angularjs 访问呈现的DOM元素
我试图在AngularJS渲染DOM元素后访问它 在我的模板中,我有一个div: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
<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);
}