2015-09-16 9 views
5

Ho bisogno di passare i dati da un'app angolare a script che girano al di fuori di angoli perché non ho accesso alla modifica del codice dell'app angolare.

Utilizzando le estensioni Angular Batarang e NG-Inspector per Chrome, posso vedere l'oggetto JSON da cui ho bisogno, ma non riesco a iniziare.

Per esempio, in angolare Batarang, l'oggetto appare come:

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

Il mio pensiero iniziale era potevo afferrarlo utilizzando angular.element ma non ho avuto alcun successo.

risposta

10

è possibile determinare a quale elemento è associato l'ambito, selezionare l'elemento e acquisirne l'ambito tramite angular.element. Assumere questo scopo è attaccato elemento <div id="stuff"></div>, osservare il seguente esempio, nello specifico, la chiamata a .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

Si sono impressionanti. Questo ha funzionato perfettamente ... il mio problema era che c'erano degli elementi personalizzati, quindi invece di getElementById, sono andato su querySelectorAll e ho trovato l'elemento che aveva l'oggetto scope che stavo cercando. Grazie per l'aiuto! – TheIntrepidSpiff

+0

Grazie mille, questa è la soluzione giusta. – mesutpiskin

Problemi correlati