2015-12-26 4 views
0

Я хочу, чтобы моя директива несколько селекторов.AngularJS директива множественных селекторов

Моя директива предупреждает о каждом посту.

Я уже писал этот код:

angular 
    .module('app.directives') 
    .directive('onTap', someDirective) 
    .directive('button', someDirective); 

someDirective.$inject = ['$ionicGesture']; 

function someDirective($ionicGesture) { 
    return { 
     restrict: 'EA', 
     link: link 
    }; 

    function link($scope, $elem, $attrs) { 
     $ionicGesture.on('tap', function() { 
      alert('Tapped!'); 
     }, $elem); 
    } 
} 

Этот код является проблема эта кнопка, например:

<button on-tap="doSomething()">Do something</button> 

Поскольку эта кнопка крана будет оповещать в два раза!

Я даже могу решить, если я изменить директиву:

.directive('someDirective', someDirective); 

Но это означает, что я должен добавить его к каждому button или [onTap] селектора.

Любое хорошее решение?

ответ

0

Вы можете попробовать это:

function someDirective($ionicGesture) { 
    var directive = { 
     restrict: 'EA', 
     link: link 
    }; 

    return directive; 

    function link($scope, $elem, $attrs, ctrls) { 
     if (directive.name === 'onTap' && $elem.is('button')) { 
      return; 
     } 

     $ionicGesture.on('tap', function() { 
      alert('Tapped!'); 
     }, $elem); 
    } 
} 
+0

Это не то, что я имел в виду. Я имел в виду, что хочу составить список селекторов, которые будут выполнять функцию предупреждения при нажатии. И если в моем списке элемент больше 1 селектора (кнопка, [onTap]), значит, предупреждение будет выполняться только 1 раз, а не дважды. –

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