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

Вызов Angular Функция контроллера из консоли браузера

Можно ли вызвать функцию контроллера AngularJS с консоли (консоль Chrome Developer Tools)?

например.

app.controller('AddCtrl', ['$scope', function ($scope) {



    $scope.save = function(){
        // do stuff here - call it from console
    };

}]);
4b9b3361

Ответ 1

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

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

Ответ 2

Откройте консоль разработчика браузеров. Осмотрите элемент, в который вводится контроллер. Выполните следующее:

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

$0 - элемент, который вы сейчас выбираете на панели элементов консоли разработчика.

Ответ 3

Если вы используете только angular и НЕ используя jquery, вы можете сделать что-то вроде angular.element(document.getElementById('yourElement')).scope().save();

Если вы используете BOTH angular и jquery, вы можете сделать angular.element($('#yourElement')).scope().save();, считая, что атрибут id вашего элемента установлен следующим образом: <div id=yourElement></div>

ОЧЕНЬ ВАЖНО Но если отметил здесь, если функция, которую вы вызываете с консоли, делает что-либо такое, что вы хотите, чтобы изменения отображались в представлении затем вы должны передать их через $apply(), как это

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

Ответ 4

Вы можете загрузить Расширение Chrome для разработчиков под названием AngularJS Batarang.

Он добавит вкладку AngularJS в консоль разработчика.

Выбор элемента на вашей странице, если он имеет область $scope, будет отображаться в правой панели " Элементы" на вкладке " $scope".

Ответ 5

  • В инспекторе Chrome щелкните элемент, связанный с областью на контроллер, где вы хотите выполнить.
  • Введите angular.element($ 0).scope(). nameYourFunctionInScope();
  • Выполнить