javascript – 使用angular.element通过$ID获取范围对象

我需要将角度应用程序中的数据传递给在角度以外运行的脚本,因为我无权编辑角度应用程序的代码.

使用Angular Batarang和NG-Inspector扩展程序,我可以看到我需要从中获取JSON对象,但我不知道如何开始.

例如,在Angular Batarang中,对象看起来像:

$id=5
name: "listing"
keys:
   0: "alpha"
   1: "beta"
alpha:
   user: "test"
   userID: "12345"
beta: 
   address: "555 Elm St"
   phone: 555.555.5555

我最初的想法是我可以使用angular.element抓住它,但我没有任何成功.

最佳答案
您可以确定该范围所绑定的元素,选择元素,并通过angular.element获取其范围.假设此范围附加到元素< div id =“stuff”>< / div>,请观察以下示例,具体来说,调用.scope()

var app = angular.module('app',[]).controller('ctrl',function($scope) {
   $scope.inside = { 'name': 'guy','idk': 'blah' }
});

var getStuff = function() {
    var outside = angular.element(document.getElementById('stuff')).scope();
    console.log(outside.inside) // retrieved "outside" of AngularJS
}

JSFiddle Example – 演示

更新

根据docs,必须启用调试模式.

scope() – retrieves the scope of the current element or its parent. Requires Debug Data to be enabled.

认启用,disabling it会在此处引发问题

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些