我需要将数据从角度应用程序传递到在角度之外运行的脚本,因为我无权编辑角度应用程序的代码。
使用 Chrome 的 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 https://docs.angularjs.org/api/ng/function/angular.element。假设此范围附加到元素<div id="stuff"></div>
,观察以下示例,具体来说,调用.scope()
<div ng-app="app" ng-controller="ctrl" id="stuff"></div>
<button onclick="getStuff()">get stuff</button>
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 示例 http://jsfiddle.net/06Ldnys8/ - demo
Update
Per the docs https://docs.angularjs.org/api/ng/function/angular.element#methods,必须启用调试模式。
scope() - 检索当前元素或其父元素的范围。需要启用调试数据。
默认情况下它是启用的,并且禁用它 https://code.angularjs.org/1.5.11/docs/guide/production#disabling-debug-data会在这里引起问题
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)