本文翻译自: ¿Cómo accedo a la variable $ ámbito en la consola del navegador usando AngularJS?
Gustaría que mi acceso a la I $scope
variable en la consola de JavaScript de Chrome. Quiero el acceso en la consola de JavaScript de Chrome $scope
variables. ¿Cómo lo hago? ¿Cómo lo hago?
Ver CAN ni el yo $scope
, ni en el nombre de mi módulo myapp
en las variables desde la consola. No veo bien $scope
no podía ver mi consola módulo de myapp
nombre que una variable.
# 1 planta
Casa # 2
Elija un elemento en el panel HTML de las herramientas de desarrollo y escribe esto en la consola: Seleccione un elemento en el panel de herramientas de desarrollo HTML, a continuación, introduzca los siguientes elementos en la consola:
angular.element($0).scope()
Un En WebKit y Firefox, $0
es una referencia a la seleccionada en el DOM El nodo en los elementos de la ficha, haciendo lo esto para que la seleccionada en el DOM NO HAGA en el ámbito de nodo Impreso en la consola. En WebKit y Firefox, $0
se selecciona la pestaña elementos DOM nodos de referencia. por lo tanto, mediante la realización de esta operación, se puede imprimir el nodo DOM rango seleccionado en la consola.
También puede orientar el alcance por el elemento de identificación, de este modo: Puede también prensa elemento ID alcance de orientación, como sigue:
angular.element(document.getElementById('yourElementId')).scope()
Complementos / Extensiones de complemento / extensión
Hay algunas extensiones de Chrome muy útiles que es posible que desee comprobar hacia fuera: Es posible que necesite para comprobar algunas extensiones muy útiles Chrome:
Batarang . Bata Lang Esto ha estado alrededor por un tiempo. Ha sido un tiempo.
Inspector-ng . Ng-Inspector . Esta es la más reciente, y como su nombre indica, se le permite inspeccionar los alcances de su aplicación. Esta es la última, como su nombre lo indica, le permite comprobar el rango de aplicación.
Jugando con jsFiddle 玩jsFiddle
Trabajando con CAN jsFiddle que el cuándo abierta en el violín en Mostrar el MODO mediante la adición /show
de AT en la dirección URL en el extremo del. Al utilizar jsFiddle, se puede visualizar mediante la adición al final del modo de dirección URL /show
para abrir el violín. Corriendo como el presente que ha de tener el acceso a cuando El angular
, Ingreso libre Ltd. , Como correr, puede acceder angular
global. Puedes probarlo aquí: Puedes probarlo aquí:
http://jsfiddle.net/jaimem/Yatbt/show http://jsfiddle.net/jaimem/Yatbt/show
jQuery Lite jQuery Lite
La carga jQuery que el antes AngularJS SI, angular.element
PUEDE SER UN selector de jQuery pasó. Si carga jQuery antes AngularJS, angular.element
puede ser a angular.element
pasar selector de jQuery. Por lo que podría inspeccionar el alcance de un controlador con el resultado, puede utilizar el siguiente comando para comprobar la gama de controladores
angular.element('[ng-controller=ctrl]').scope()
Un botón pulsador A
angular.element('button:eq(1)').scope()
Y así sucesivamente .... ... y así sucesivamente.
En realidad, puede que desee utilizar un global de función para que sea más fácil: en realidad se podría querer usar la función global para que sea más fácil:
window.SC = function(selector){
return angular.element(selector).scope();
};
Ahora usted puede hacer esto ahora, se puede hacer esto
SC('button:eq(10)')
SC('button:eq(10)').row // -> value of scope.row
Aquí el papel pintado Comprobar: http://jsfiddle.net/jaimem/DvRaR/1/show/ comprueba aquí: HTTP : //jsfiddle.net/jaimem/DvRaR/1/show/
Casa # 3
En algún lugar de su controlador (a menudo la última línea es un lugar bueno), poner el controlador en una ubicación (por lo general la última línea es un lugar bueno), en
console.log($scope);
Si desea ver un interior / alcance implícito, por ejemplo dentro de un ng-repetición, algo así como este trabajo. Para ver el ámbito interno / implícita, como en el ng-repetición, se puede utilizar de manera similar.
<li ng-repeat="item in items">
...
<a ng-click="showScope($event)">show scope</a>
</li>
Luego, en su controlador y el controlador
function MyCtrl($scope) {
...
$scope.showScope = function(e) {
console.log(angular.element(e.srcElement).scope());
}
}
Tenga en cuenta que anteriormente definimos el showScope ( función) en el ámbito padre, pero eso está bien ... el / ámbito interno / implícita niño pueda acceder a esa función, que luego imprime el alcance basado en el evento, y por lo tanto el alcance asociado con el elemento que generó el evento. nota por favor, que lo anterior definimos showScope () en el ámbito de los padres, pero no importa ... el niño / interno / ámbitos implícitos podemos acceder a la función, a continuación, que funcionan de acuerdo con el evento Print ámbito de aplicación, lo que desencadena elemento asociado con el alcance del evento.
También el Consejo de JM-@ Works, pero el no me creo que funciona de Dentro De Un jsFiddle. Recomendar @ JM-puede ser, pero yo creo que no funciona en el interior jsFiddle. Me sale este error en el interior jsFiddle Chrome : Recibí este error en jsFiddle en Chrome:
> angular.element($0).scope() ReferenceError: angular is not defined
# 4 piso
Para mejorar la respuesta de JM ... con el fin de mejorar la respuesta jm ...
// Access whole scope
angular.element(myDomElement).scope();
// Access and change variable in scope
angular.element(myDomElement).scope().myVar = 5;
angular.element(myDomElement).scope().myArray.push(newItem);
// Update page to reflect changed variables
angular.element(myDomElement).scope().$apply();
O si usted está usando jQuery, este hace lo mismo ... o si estás usando jQuery, puede hacer lo mismo ...
$('#elementId').scope();
$('#elementId').scope().$apply();
Una forma de fácil acceso Otro elemento DOM desde la consola (jm mencionado AS) ¿ES ON en el clic en la ficha 'Elementos', y el se almacena automáticamente como $0
. Otra forma sencilla de acceder al elemento DOM desde la consola (por ejemplo, JM a) haciendo clic en la pestaña "elementos", se almacena automáticamente como $0
.
angular.element($0).scope();
Casa # 5
Has de haber instalado SI batarang Si ya ha instalado batarang
A continuación, sólo se puede escribir: A continuación, se puede escribir:
$scope
cuando se tiene el elemento seleccionado en los elementos de la vista en cromo. Cuando se selecciona un elemento en elementos de Chrome a la vista. Ref - https://github.com/angular/angularjs-batarang#console referencia -https: //github.com/angular/angularjs-batarang#console
Casa # 6
El acepto a los mejores es batarang con ella es $scope
la vez que el objeto UN Selección (es al mismo, AS angular.element($0).scope()
o el aún más corto con jQuery: $($0).scope()
(mi favorito)) Estoy de acuerdo en que lo mejor es seleccionar el objeto angular.element($0).scope()
de $scope
(y angular.element($0).scope()
, o incluso más corto que jQuery: $($0).scope()
(I más como))
También, si tiene tener como mí en el ámbito principal de encendido body
Elemento, A $('body').scope()
funciona bien. Además, si, como yo, estará sujeta gama se encuentra en body
los elementos, que $('body').scope()
puede funcionar correctamente.