AngularJS 和 DOM:在 ng-view 中获取元素

AngularJS and DOM: Get element inside ng-view

我只是想在我的 AngularJS 控制器中使用 DOM 获取我的 ng-view 中元素的高度。

我在 AngularJS 控制器中的以下代码中得到 Uncaught TypeError: document.getElementsByClassName(...).getElementById is not a function

// I do a hardcoded timeout for now to wait for ng-view to load.
setTimeout(function(){ 
  var theView = document.getElementsByClassName("view-container")[0].getElementById("myView").getElementsByClassName("container")[0];
}, 10000);

这是我的 HTML 的样子:

<div class="view-container">
    <ng-view class="view-frame ng-scope" autoscroll="" id="myView">
        <div class="container ng-scope">
            <div class="row">
                <!-- content -->
            </div>
        </div>
    </ng-view>
</div>

我已经多次检查 getElementById 的拼写。 AngularJS、ng-view 和 DOM 就是不喜欢一起工作,我是不是漏掉了一些奇怪的东西?或者是否有一种 "Angular" 方法来获取我的 ng-view 中元素的高度而不是使用 DOM?

您不能在元素上调用 getElementById,只有文档支持该功能。

就这样:

setTimeout(function(){ 
  var theView = document.getElementById("myView").getElementsByClassName("container")[0];
}, 10000);