当我使用 ng-click 时,我可以通过 id 获取 html 元素,但是使用 ng-init 我得到 null。请检查我的笔http://codepen.io/solidet/pen/pbJMjq
html
<script type="text/javascript">
var memId = "bb7de28f-0f89-4f14-8575-d494203acec7";
</script>
<div ng-app="myapp" ng-controller="MainCtrl" ng-init="getMember(memId)">
<span id="audio-{{memId}}">
Your mem ID: {{memId}}
</span>
<span ng-click="getMember(memId)"> click me <span>
</div>
Controller
var app = angular.module('myapp', []);
app.controller('MainCtrl', ['$scope', '$window', function($scope, $window) {
$scope.memId = $window.memId;
$scope.getMember = function(id) {
console.log(id);
var voice = document.getElementById('audio-'+ id);
console.log(voice);
};
}]);
最佳答案
你可以通过 angular $timeout 得到它,它会等到 Angular 循环完成并呈现元素
Controller
var app = angular.module('myapp', []);
app.controller('MainCtrl', ['$scope', '$window', '$timeout', function($scope, $window, $timeout) {
$scope.memId = $window.memId;
$scope.getMember = function(id) {
$timeout(function() {
console.log(document.querySelector('#audio-' + id))
});
};
}]);
关于javascript - 如何通过从angular的ng-init传递的Id获取html元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37652030/