Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.12.2014, 20:55
Интересующийся
Отправить личное сообщение для arkada38 Посмотреть профиль Найти все сообщения от arkada38
 
Регистрация: 09.10.2012
Сообщений: 23

ng-click и onclick
onclick="document.getElementById('id').click()"//Работает
ng-click="document.getElementById('id').click()"//Не работает

Использовал бы onclick="", но подключил angular-touch и onclick не работает.
Как js функции заставить работать в ng-click?
Ответить с цитированием
  #2 (permalink)  
Старый 07.12.2014, 13:02
Аватар для MetaDriver
Аспирант
Отправить личное сообщение для MetaDriver Посмотреть профиль Найти все сообщения от MetaDriver
 
Регистрация: 24.04.2014
Сообщений: 66

Сообщение от arkada38 Посмотреть сообщение
onclick="document.getElementById('id').click()"//Работает
ng-click="document.getElementById('id').click()"//Не работает

Использовал бы onclick="", но подключил angular-touch и onclick не работает.
Как js функции заставить работать в ng-click?
Перестроить мозг. У меня не самый маленький проект, но в нём "id" использован только один раз - для имитации клика в стороннем компоненте. А почему? А потому что нет необходимости: ангуляр в JavaScript-коде предоставляет доступ к DOM'у текущего элемента "из коробки" - через внедряемый в контроллер или директиву параметр '$element', который является jQuery-обёрткой текущего элемента. Всё это, кстати говоря, подробно описано в документации (и даже на русском). Пример использования:
myapp.controller('MapWithMarkersCtrl', function($scope,$element,$timeout) {
    ...
      // Навешивание  обработчика
      $element.on('click',  handlerName);
    ...
      console.log('fire "click"');
      //  Имитация клика на нужном DOM-элементе
      $timeout(function(){
         $element.children('a:first').triggerHandler('click');
      },20);
    ...
});

Использование в HTML ещё проще - просто указываете для нужного html-тега в ng-click имя обработчика, который должен быть определён в текущем скопе.
В Вашем случае:
ng-click="click()"
И псё.
Это работает и в основном html-файле и в шаблонах.

Последний раз редактировалось MetaDriver, 07.12.2014 в 18:55.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery bind/on click или JavaScript onClick - что и в каких случаях лучше юзать IVAN86 Events/DOM/Window 21 06.07.2012 08:31
OnClick ячейки таблицы и ссылки в этой ячейке MasDen Javascript под браузер 2 30.06.2011 10:34
Создание события onclick? kerranswell Events/DOM/Window 31 09.05.2011 21:20
live click выполняется несколько раз hara jQuery 9 09.06.2010 10:58
Обработчик события click BOGDAN Общие вопросы Javascript 6 02.03.2009 20:52