2015-09-16 3 views
5

角度アプリのコードを編集する権限がないため、角度アプリから角度のないスクリプトにデータを渡す必要があります。

Chrome用のAngular BatarangとNG-Inspectorの拡張機能を使用すると、私は引き出しが必要なJSONオブジェクトを見ることができますが、開始方法が失われています。例えば

は、角度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を使用してそれをつかむことができましたが、私は、任意の成功を持っていませんでした。

答えて

10

あなたは、範囲がバインドされている要素を特定し、その要素を選択して、angular.elementで範囲を取得することができます。 .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に、具体的には、以下の例を観察し、この範囲は要素<div id="stuff"></div>に添付されたコールを想定 - デモ

+0

あなたが素晴らしいです。それは完璧に働いた...私の問題は、カスタム要素があったので、getElementByIdの代わりに、私はquerySelectorAllに行き、私が探していたスコープオブジェクトを持つ要素を見つけました。 ありがとうございました! – TheIntrepidSpiff

+0

ありがとう、これは正しい解決策です。 – mesutpiskin

関連する問題