Подтвердить что ты не робот

Как получить доступ к переменной $ scope в angular из консоли Chrome

Как получить доступ к виджетам переменных области из консоли Chrome

function MyCntrl($scope) {
    $scope.widgets = [
        {text:'Widget #1', datarow:1, datacol:1, datasizex:3, datasizey:3},
        {text:'Widget #2', datarow:2, datacol:1, datasizex:3, datasizey:3},
        {text:'Widget #3', datarow:1, datacol:2, datasizex:3, datasizey:3},
        {text:'Widget #4', datarow:2, datacol:2, datasizex:3, datasizey:3}
    ];

Что-то вроде $scope.widgets просто не работает в консоли!

4b9b3361

Ответ 1

Область привязки привязана к DOM, поэтому вам нужно захватить элемент и использовать некоторый код angular для получения области.

Лучше всего получить элемент, к которому привязан Контроллер, и взглянуть на область действия.

Вот ответ Как получить доступ к переменной $scope в консоли браузера, используя AngularJS?

Ответ 2

Это способ получить доступ к пробегу без batarang. Предполагая, что у вас есть ссылки на jquery и angular на вашей странице, вы можете сделать:

var scope = angular.element($('#selectorId')).scope();

или если вы хотите найти свою область действия по имени контроллера, сделайте следующее:

var scope = angular.element($('[ng-controller=myController]')).scope();

После внесения изменений в модель вам необходимо применить изменения к DOM, вызвав

scope.$apply();

Ответ 3

Вы можете либо следовать за Аньере Воли, либо установить Angular Batarang расширение Chrome. Это позволит не только просматривать и обрабатывать объект "$ scope", скажем, вашу консоль JavaScript, но и это фундаментальный инструмент при разработке сложных приложений AngularJS.

Ответ 4

Вот один пример. У меня есть следующая DOM в моем приложении angular Single Page:

<div ng-controller="usersAppController as uac" class="ng-scope">
    <div class="tab ng-scope is-normal is-active" id="rolesTab" ref="tabs" mode="normal" target-ref="rolesContent" xng-locals="xng.userApp.roles">Roles
    </div>
</div>

и этот div присутствует в имени контроллера usersAppController как uac Выше здесь я имею контроллер как синтаксис

Также обратите внимание, что я использую jQuery в своем приложении:

Метод

$($ 0).controller() даст мне прямой доступ к объекту uac, который находится в объекте $scope.

$($ 0).scope() даст мне цепочку прототипов для выбранного мной элемента, и если я последую этой цепочке, я найду объект области видимости для этого элемента.