Class 指令不起作用,但在更改为元素指令时起作用

Class directive doesn't work, but works whenever changed to element directive

我遇到了一个非常奇怪的问题,即 class 指令不起作用。所以我正在尝试执行以下指令。

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 中,我只有一个带有 class btn 的按钮,就像这样。

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

但出于某种原因,它永远不会触发该指令。我试过使用 console.log 进行调试,只是没有输入指令本身。但是当我将 restrict: 'C' 从 C 更改为 E 时,它工作正常! (当然 HTML 有所改变。)

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

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

所以在看了几个小时的代码之后,我终于找到了它是什么。所以写官方代码的人在这行代码中加入了....

$compileProvider.cssClassDirectivesEnabled(false);

将其更改为 true,并且有效..