类指令不起作用,但是只要更改为元素指令就可以起作用

时间:2018-11-19 15:37:52

标签: javascript angularjs directive

我遇到了一个非常奇怪的问题,即类指令无法使用。因此,我正在尝试实现以下指令。

appModule.directive('btn', function () {
    return {
        restrict: 'C',
        link: function (scope, element) {
            if (element.hasClass('btn-icon') || element.hasClass('btn-float')) {
                Waves.attach(element, ['waves-circle']);
            }

            else if (element.hasClass('btn-light')) {
                Waves.attach(element, ['waves-light']);
            }

            else {
                Waves.attach(element);
            }

            Waves.init();
        }
    }
});

然后在我的HTML中,只有一个带有btn类的按钮,就像这样。

<button type="button" class='btn btn-success'>Hello</button>

但是由于某种原因,它永远不会触发该指令。我尝试使用console.log进行调试,只是没有输入指令本身。但是,当我更改限制:将“ C”从C更改为E时,它可以正常工作! (更改了课程的HTML。)

现在,我们确实在angularJS之上使用了一个小的框架,但是在其中没有发现任何奇怪的东西。 (我最近加入团队,框架的原始开发人员没有编写任何文档,而是离开了团队。)

该指令不起作用的可能原因是什么?我到处都用Google搜索,但找不到类似问题的人。

1 个答案:

答案 0 :(得分:0)

因此,在看了几个小时的代码之后,我终于找到了它。因此,写官方代码的人会在这行代码中添加...。

$compileProvider.cssClassDirectivesEnabled(false);

将其更改为true,并且可以使用。.