2015-05-25 2 views
4

Я использую плагин Waves, и я хочу использовать его на 3 разных классах.AngularJS - Связывание нескольких классов в директиве

В JQuery мои коды идут как этот

Waves.attach('.button', ['waves-button', 'waves-float']); 
Waves.init(); 

В Угловом Я преобразовал это директиву

.directive('waves', function(){ 
     return { 
      restrict: 'A', 
      link: function(scope, element) { 
       Waves.attach('.btn', ['waves-button', 'waves-float']); 
       Waves.init(); 
      } 
     } 
    }) 

У меня есть много элементов с упомянутыми выше классами и во всех из них, у меня есть использовать дополнительный атрибут, чтобы заставить его работать data-waves

Чтобы избежать этого, я ограничил директиву классом, но мне удалось привязать только один класс.

.directive('btn', function(){ 
     return { 
      restrict: 'C', 
      ... 

Как связать несколько классов с одной директивой, если она ограничена классом? Я ожидаю, что-то вроде

.directive(['class1', 'class2', 'class3'], function(){ 
     return { 
     restrict: 'C', 

ответ

0

Я думаю, что вы должны создать новую директиву, но совместно использовать фабричную функцию.

function mySharedDirectiveFactory() { 
    return { 
    // directive object 
    }; 
} 
angular.module('myModule') 
.directive('class1', mySharedDirectiveFactory) 
.directive('class2', mySharedDirectiveFactory) 
.directive('class3', mySharedDirectiveFactory); 

Во всяком случае, я думаю, что лучше всего создать только один директиву и ограничить его элемента или атрибута, так что вы будете иметь только одно определение.

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