scope - 在 AngularJS 中,如何找到页面上的所有范围?

标签 scope angularjs

一旦我们有了一个范围,我们就可以导航到它的根并探索范围层次结构。

但是有没有一种直接的方法可以找到页面上的所有范围?

同样给定一个 HTML 元素,是否有直接的方法来找到它的封闭范围?

最佳答案

并非所有范围都绑定(bind)到元素。如果你想要全部 页面上的范围,像这样遍历范围树:

function getScopes(root) {
    var scopes = [];

    function visit(scope) {
        scopes.push(scope);
    }
    function traverse(scope) {
        visit(scope);
        if (scope.$$nextSibling)
            traverse(scope.$$nextSibling);
        if (scope.$$childHead)
            traverse(scope.$$childHead);
    }

    traverse(root);
    return scopes;
}

getScopes($rootScope)

关于scope - 在 AngularJS 中,如何找到页面上的所有范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10514147/

相关文章:

java - 为什么 Spring 会从 Singleton 类创建 2 个对象?

java - 在Java中,为什么我的构造函数在外部类中时没有被调用?

JavaScript addEventListener 添加对当前对象的引用

jquery - AngularJS (Blueimp Jquery-file-uploader) 与 Rails + Devise - 已完成 401 未经授权

AngularJS Microsoft Edge 屏幕不反射(reflect) DOM

Python 全局变量和局部变量

ruby - 您是否曾在任何 Ruby 代码中使用过 "class instance variable"?

angularjs - 从 Controller 重定向到ons-template

javascript - 无法将值从工厂返回到服务 AngularJS

javascript - 如何在甘特图中添加上下文菜单