el = document.getElementById(id);在以下函数内部时无效... el为空。在浏览器调试中,我可以使用相同的代码提取元素。我是Angular.js的新手。我可以不在附加到范围的函数中使用常规javascript吗?
myappApp.controller('Scroller', function($scope, $location, $anchorScroll) {
$scope.scrollTo = function(id) {
el = document.getElementById(id);
}
答案 0 :(得分:12)
我认为DOM尚未加载。所以请确保在完全加载DOM之后运行getElementById()。如果在“加载”事件触发后失败,则这是由另一个原因造成的。
HTML
<body ng-controller="sample">
<h1 id="foo">bar</h1>
</body>
JS
var app = angular.module('myApp', []);
app.controller('sample', function($scope){
addEventListener('load', load, false);
function load(){
var el = document.getElementById("foo");
alert(el);
}
});