2015-06-09 14 views
12

Sono in grado di accedere alla variabile $scope in base alla risposta accettata here. Tuttavia, non sono in grado di modificarlo dalla console, ovvero modificare le proprietà, richiamare le funzioni, ecc. È possibile?

Ecco un codice di prova che ho avuto modo di sperimentare con:

<!doctype html> 
<html data-ng-app="Foo"> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script> 
    <script type="text/javascript"> 
     var app = angular.module("Foo", []); 
     app.controller("One", ["$scope", function($scope) { 
     $scope.text = "hello"; 
     }]); 
    </script> 
    </head> 
    <body> 
    <div id="container" ng-controller="One"> 
     {{ text }} 
    </div><!-- #container --> 
    </body> 
</html> 

Se modifico la proprietà text utilizzando la console, cambia, ma la vista non cambia:

> angular.element($("#container")).scope().text 
< "hello" 
> angular.element($("#container")).scope().text = 'bye' 
< "bye" 

Come cambio i valori e le proprietà $scope dalla console, in modo che anche la vista e tutte le dipendenze ricevano aggiornamenti?

+0

Questa non è una questione duplicato (appena ha un titolo povero) –

+0

http://stackoverflow.com/questions/15663412/how-to-access-scope-variable-in-angular-from-chrome-console – PSL

+0

@DavidGrinberg La domanda collegata risponde a ciò che l'OP sta chiedendo. In realtà ho trovato anche più di loro. – PSL

risposta

12

Qualsiasi variabile portata aggiornato da fuori contesto angolare sarà non aggiornerà vincolante, È necessario eseguire digest cycle dopo l'aggiornamento dei valori di portata utilizzando scope.$apply() che chiamerà $digest metodo e tutte le associazioni verranno aggiornate su HTML.

angular.element($("#container")).scope().text 
angular.element($("#container")).scope().$apply() 

Nota: - Si dovrebbe aggiungere file di jQuery per farlo funzionare.

+1

Questo è veramente sbagliato. OP non sta nemmeno usando jquery (basato sul codice visualizzato) – PSL

+0

@downvoter per favore lascia un commento .. cosa c'è di sbagliato nella mia risposta? –

+1

. $ Apply funzionerà ma non so come verrà eseguito lo snippet se non è caricato jquery. Ma il PO abbastanza strano probabilmente non sta mostrando il codice completo e sembra che op lo stia facendo .. Quindi penso di poter dare beneficio al dubbio !! Il mio rimosso ... – PSL

Problemi correlati