AngularJS - 在指令中绑定多个类

时间:2015-05-25 09:02:01

标签: javascript angularjs angularjs-directive

我正在使用Waves插件,我想在3个不同的类上使用它。

在jQuery中,我的代码就像这样

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

在Angular中,我将其转换为指令

.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',

1 个答案:

答案 0 :(得分:0)

我认为您必须创建新指令但共享工厂功能。

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

无论如何,我认为最好只创建一个指令并将其限制为元素或属性,因此您将只有一个定义。