Angular.js getElementById()在$ scope函数中不起作用

时间:2014-04-13 23:55:46

标签: javascript angularjs

el = document.getElementById(id);在以下函数内部时无效... el为空。在浏览器调试中,我可以使用相同的代码提取元素。我是Angular.js的新手。我可以不在附加到范围的函数中使用常规javascript吗?

myappApp.controller('Scroller', function($scope, $location, $anchorScroll) {
    $scope.scrollTo = function(id) {
    el = document.getElementById(id);
    }

1 个答案:

答案 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);
        }

    });