2

Как удалить атрибут (или хотя бы его значение) с помощью углового? В частности, скажем, у меня есть событие ng-click. Я хочу, чтобы это даже срабатывало только один раз, и я думаю, что самый простой способ сделать это - это «саморазрушить» в событии ng-click. Что-то вдоль линийКак удалить атрибут из элемента в угловом?

elementClicked = function(){ 
    //do work 
    element.ngClick=null; 

} 

ответ

4

Удаление атрибута нг-клик не будет работать, потому что слушатель события нажатия все еще будет там после удаления атрибута. Вам нужно установить привязку ng-click к null.

Я создал click-once директива. Он прослушивает событие щелчка элемента и выполняет привязку 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.

+0

Просто интересно, какой прецедент пожалуйста? – glepretre

+0

Спасибо за редактирование @vjarysta. Я думаю, это должно было быть принято :) – halilb

Смежные вопросы