gpt4 book ai didi

javascript - 使用 angular.element 通过 $ID 获取作用域对象

转载 作者:太空狗 更新时间:2023-10-29 15:29:54 27 4
gpt4 key购买 nike

我需要将数据从 Angular 应用程序传递到在 Angular 之外运行的脚本,因为我无权编辑 Angular 应用程序的代码。

使用适用于 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 获取它,但我没有取得任何成功。

最佳答案

您可以确定范围绑定(bind)到哪个元素,选择元素,并通过 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 Example - 演示


更新

根据 docs ,必须启用 Debug模式。

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

默认启用,disabling it会在这里引起问题

关于javascript - 使用 angular.element 通过 $ID 获取作用域对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32610912/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com