2015-09-16 7 views
5
zu erhalten

Ich muss Daten aus einer eckigen App an Skripten übergeben, die außerhalb von eckigen laufen, weil ich keinen Zugriff auf die Bearbeitung des Codes der eckigen App habe.

Unter Verwendung von Angular Batarang und NG-Inspector-Erweiterungen für Chrome kann ich das JSON-Objekt sehen, aus dem ich ziehen muss, aber ich weiß nicht, wie ich anfangen soll.

Zum Beispiel in Angular Batarang, sieht das Objekt wie:

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

Mein erster Gedanke war, ich es angular.element mit greifen könnte, aber ich habe keine Erfolge gehabt.

Antwort

10

Sie können bestimmen, an welches Element dieser Bereich gebunden ist, wählen Sie das Element aus und greifen Sie den Bereich über angular.element. Angenommen, dieser Bereich an das Element angebracht ist <div id="stuff"></div>, beachten Sie das folgende Beispiel, speziell, um den Anruf zu .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 - Demo

+0

Sie sind genial. Das funktionierte perfekt ... mein Problem war, dass es benutzerdefinierte Elemente gab, also ging ich anstelle von getElementById zu querySelectorAll und fand das Element mit dem Scope-Objekt, nach dem ich gesucht hatte. Danke für die Hilfe! – TheIntrepidSpiff

+0

Vielen Dank, das ist die richtige Lösung. – mesutpiskin

Verwandte Themen