2015-05-25 97 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); 

無論如何,我認爲最好是隻創建一個指令並將其限制爲一個元素或一個屬性,因此您將只有一個定義。