0

I am trying to get an element inside an AngularJS controller like this:

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

It doesn't work, the element is null. However if I move the statement to a function that I bound with ng-click it works. Why? and how do I fix it?

4

3 回答 3

0

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

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

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

于 2013-08-25T20:48:18.067 回答
0

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

于 2013-08-25T09:57:22.953 回答
0

就像 Karaxuna 说的,它还没有被渲染。

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

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

于 2013-08-25T10:15:15.507 回答