Как вызвать метод?

379
25 декабря 2016, 22:06

Здравствуйте.
Помогите, пожалуйста, разобраться в том, как вызвать метод, который привязан к событию нажатия кнопки. Вроде звучит просто, но я не знаю, как. С JS пришлось столкнуться только сейчас.

Есть дашборд (http://play.grafana.org/#/dashboard/db/grafana-play-home), на странице есть кнопка "Zoom out". Я хочу вызвать этот метод в другом месте, но, увы, не знаю, как. Вот это место на странице:

<a class="small" ng-click="zoom(2)">Zoom Out</a>

Если в консоль ввести "zoom(2)", то получаю ошибку "ReferenceError: zoom is not defined". Как достучаться до этого метода?

Answer 1

Если вы хотите вызвать эту функцию не из кода ангуляр приложение, то можно использовать angular.element и его метод scope

Например так:

angular.element(document.querySelector('gf-time-picker a.small')) //получили элемент клик которого хотим вызвать
       .scope() //получили скоп привязанный к этому элементу
       // для случая из поста
       .zoom(2) //вызываем функцию с необходимыми параметрами
      // для случая использованного на сайте: используется `controller As` синтаксис
      .ctrl //получаем ссылку на контроллер, название зависит от указанного в директиве.
      .zoom(2) //вызываем функцию с необходимыми параметрами

Если функцию необходимо вызвать внутри ангуляра, то в данном случае это зависти от структуры, которая используется, возможны варианты от простого вызова функции в нужном месте, до, например, посылки события через $emit или $broadcast

Answer 2

Может, попробовать триггернуть событие click на этом элементе? Как-то типа:

$( 'a.small').each( function(){
    if( $( this).text == 'Zoom Out') $( this).trigger( 'click');
});
READ ALSO
overflow у класса fancybox-inner

overflow у класса fancybox-inner

Есть блок - на картинкевозле поля выскакивает блок с ошибкой если она есть

333
Не работает ClientWidth

Не работает ClientWidth

Высоту окна (браузера) выводит правильно, а ширину выводит всего экрана а не окна (браузера)При этом имеется боковой scroll, должен вывести ширину...

411
Конфигурационный файл txt для js

Конфигурационный файл txt для js

Есть некоторый iframe с видео, который открывается на странице по таймаутуМожно ли сделать конфиг в формате

404
JS - Доработать функцию переноса [требует правки]

JS - Доработать функцию переноса [требует правки]

Здравствуйте, очень слаб в JS, нужна помощь, есть скрипт

344