2014-04-01 26 views

risposta

27

Sì, basta utilizzare angular.element per ottenere un elemento che è nel campo di applicazione del controller:

angular.element("yourElement").scope().save(); 
+0

cos'è "yourElement" - controller? – Iladarsda

+0

È un elemento all'interno dell'ambito dei controller, quindi '

' - il div con ID 'someElem' rientra nello scope, quindi puoi fare:' angular.element (" someElem "). scope()' - guarda la guida per ulteriori informazioni: http://docs.angularjs.org/api/ng/function/angular.element – tymeJV

+0

hm ... il mio corpo non ha attributo 'ng-controller'. si applica la stessa regola quando si usa 'ng-view'? – Iladarsda

23

Aprire la console di browser sviluppatore. Ispezionare l'elemento in cui viene iniettato il controller. Eseguire quanto segue:

angular.element($0).scope().save() 

$ 0 è l'elemento che si sta selezionando nel pannello degli elementi della console di sviluppo.

+0

Ho ricevuto l'errore: 'angolare non è definito' – Matt

+0

Ho aggiornato la pagina e ha funzionato. – Matt

10

Se si utilizzano solo angolare e che non utilizzano jQuery si può fare qualcosa di simile angular.element(document.getElementById('yourElement')).scope().save();

Se si utilizza sia angolare e jQuery, si può fare angular.element($('#yourElement')).scope().save(); assumendo l'attributo l'id del vostro elemento è impostato in questo modo <div id=yourElement></div>

MOLTO IMPORTANTE Ma, come noted here se la funzione che si sta chiamando dalla console fa qualcosa in modo tale che si desidera i cambiamenti di presentarsi nella vista allora si deve passare attraverso di loro $apply() come questo

var scope = angular.element($('#story')).scope(); 
scope.$apply(function(){ 
    scope.showNextScene(); 
}); 
+0

Grazie, l'ultima parte molto importante mi ha salvato! – legas

+0

@legas Angular ha stranezze strane. Ci vogliono anni per superarli a volte. –

1

è possibile caricare un Chrome Extensionper gli sviluppatori chiamati AngularJS Batarang.

Aggiungerà una scheda AngularJS alla console di sviluppo.

Selezione di un elemento nella tua pagina, se ha un $ ambito, mostrerà nel riquadro "Elementi " mano destra, nella scheda "$ portata".

+0

Come menzionato da altri Se jQuery è disponibile, angular.element è solo un alias per la funzione jQuery. Se jQuery non è disponibile, angular.element delega al sottoinsieme integrato di jQuery di Angular, chiamato "jQuery lite" o jqLite. –

0
  1. Nell'ispettore di Chrome, fare clic sull'elemento corrispondente allo al controllore in cui si desidera eseguire.
  2. Tipo angular.element ($ 0) .scope(). NameYourFunctionInScope();
  3. Execute
+0

Digitali dove? ? –

Problemi correlati