Как я могу удалить атрибут из углового элемента?
Как удалить атрибут (или хотя бы его значение) с помощью Angular? В частности, скажем, у меня есть ng-click
событие. Я хочу, чтобы это даже срабатывало только один раз, и я думаю, что самый простой способ сделать это - это самоуничтожиться в событии ng-click. Нечто подобное
elementClicked = function(){
//do work
element.ngClick=null;
}
1 ответ
Решение
Удаление атрибута ng-click не будет работать, потому что прослушиватель события click будет оставаться там после удаления атрибута. Вам необходимо установить привязку ng-click к нулю.
Я создал директиву " нажми один раз". Он прослушивает событие нажатия элемента и впервые выполняет привязку ng-click, а затем удаляет его.
.directive('clickOnce', function() {
return {
scope: {
'ngClick': '&'
},
link: function(scope, element) {
element.bind('click', function() {
if (scope.ngClick) {
scope.ngClick();
scope.ngClick = null;
}
});
}
}
});
Вот разметка:
<button click-once ng-click="doThis()>my button<button>
Вот jsFiddle.