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

标签 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);
    }

最佳答案

我认为 DOM 尚未加载。所以请确保 getElementById() 在 DOM 完全加载后运行。如果在 'load' 事件触发后失败,这是由其他原因造成的。

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

    });

关于javascript - Angular.js getElementById() 在 $scope 函数中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23049904/

相关文章:

javascript - 如果存在则追加到列表或在 dynamoDB 中添加列表

javascript - 在闭包中,为什么每次调用 main 变量都不会重置?

javascript - 循环子对象

javascript - 没有反射(reflect)我在 angularjs 中 `$rootScope` 的更改

json - 获取没有时间/时区的 ui.bootstrap.datepicker 值

javascript - AngularJS 指令有时不会被调用

javascript - fullpage.js 如何检测垂直滚动

javascript - 从 JSP 调用 EXTJS 方法时未捕获的类型错误和 Uncaught ReferenceError

javascript - 替换 javascript 或 angularjs 中字符串中某些字符的存在

javascript - 在 AngularJS 中使用多个主题的最佳方式是什么