Angularjs - есть ли способ программно нажать на HTML <select> элемент?

Я видел решение javascript, которое выглядит примерно так:

var select = document.getElementById('selectId')
select.click();

Есть ли у AngularJS подход /лучшие практики к тому же? (В верхней части моей головы вы можете обернуть вышеуказанный код одним щелчком мыши)

4 голоса | спросил Android Noob 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 24 Sep 2015 06:33:41 +0300 2015, 06:33:41

2 ответа


0

Да, есть. Вот угловой эквивалент того, что у вас есть в JavaScript

angular.element('#selectId').trigger('click');

Рабочий пример

ответил Shaunak 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 24 Sep 2015 06:38:18 +0300 2015, 06:38:18
0

Любые манипуляции с DOM в angular должны происходить внутри директивы.

Вид

<div id="selectId" clickMe>content</div>

Внутри директивы функция link срабатывает после компиляции представления. Вторым параметром в функции link является элемент, на котором размещена директива, это дает преимущества в производительности, так как нет необходимости проходить через dom. Это элемент JQlite, к которому вы можете напрямую вызывать методы.

Директива

app.directive('click-me', function(){
  return{
    link(scope, el, attr){
       $(el).trigger('click');
     }
  }
});
ответил byrdr 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 24 Sep 2015 06:39:07 +0300 2015, 06:39:07

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132