Директива класса не работает, но работает всякий раз, когда изменяется на директиву элемента - PullRequest
0 голосов
/ 19 ноября 2018

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

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, но не нашли там ничего странного. (Я недавно присоединился к команде, и оригинальный разработчик фреймворка не написал никакой документации и покинул команду).

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

1 Ответ

0 голосов
/ 19 ноября 2018

Так что, посмотрев на код в течение нескольких часов, я наконец нашел, что это было.Итак, кто-то, кто написал официальный код, добавил в эту строку кода ....

$compileProvider.cssClassDirectivesEnabled(false);

Изменил это на true, и это работает ..

...