javascript - paso - scope para que sirve
cómo depurar el objeto $ rootScope de angularjs en el navegador (7)
¿Hay alguna manera de depurar la aplicación angularjs cuando se carga en el navegador?
es decir. Deseo obtener el $rootScope
de mi aplicación actual. ¿Como podría hacerlo?
+1 para Batarang
Además, puede obtener el alcance de cualquier elemento en el DOM ejecutando lo siguiente desde la consola
angular.element(DOMNODE).scope()
Donde DOMNODE, por supuesto, es una referencia a un nodo DOM.
Por ejemplo, en Chrome en la pestaña de elementos , puede seleccionar el nodo donde está la directiva ng-app
y obtener el alcance de la raíz con
angular.element($0).scope()
En la consola de desarrollador prueba esto
$rootScope = angular.element(document).scope()
En la consola del desarrollador, escriba angular.element(''body'').scope();
en caso de que su aplicación sea <body data-ng-app="SomeApp">
Para aquellos que usan $compileProvider.debugInfoEnabled(false);
y ng-strict-di
simplemente pegue esto en la consola y $rootScope
se registrará y se agregará a la window
:
function getRootScope(a){ console.log(window.$rootScope = a); }
getRootScope.$inject = ["$rootScope"];
angular.element(document.querySelector(''[data-ng-app],[ng-app]'')).injector().invoke(getRootScope);
Puede ver $ rootScope en sus fuentes Herramientas de desarrollo-> Fuentes
Solo quería agregar que hay una extensión de Chrome gratuita llamada "Angular Scope Inspector" ( url actual del almacén ) que automáticamente inspeccionará el alcance de los elementos seleccionados en la pestaña de elementos de herramientas del desarrollador.
Lo descubrí hoy, y es muy útil, IMO
Batarang : un complemento de Google Chrome para AngularJS
Después de instalar esto, puede hacer
console.log ($ rootScope);
y verifique el objeto de alcance en su consola de Chrome.
Por cierto, si desea obtener $ rootScope, debe inyectar a su controlador
me gusta
app.controller(''MainCtrl'', function($scope, $rootScope) {
}