无法在Angular中获取控制器内的元素

时间:2013-08-25 09:53:53

标签: javascript html angularjs

我试图在AngularJS控制器中获取一个元素,如下所示:

var imageInput = document.getElementById("myImage");

它不起作用,元素为null。但是,如果我将语句移动到我与ng-click绑定的函数,它就可以工作。为什么?以及如何修复它?

3 个答案:

答案 0 :(得分:0)

因为那时候没有渲染。如果你编写所有代码,我们会建议比在控制器中使用dom更好的选择(这对你没有好处:))

答案 1 :(得分:0)

就像卡拉克斯纳说的那样,尚未呈现。

根据您要执行的操作,您可以使用指令向元素添加行为:http://docs.angularjs.org/guide/directive

添加一些代码,以便我们为您提供更好的答案。

答案 2 :(得分:0)

不仅可能没有在你的dom中渲染,而且你应该在你的控制器中注入$window,然后像这样访问文档:

    var myCtrl = function($scope,$window) {
       Var document = $window.document
       ...
    }

但你应该寻求一种更好的方法来操纵你的DOM,而不是在你的控制器中这样做(例如写一个指令)