Угловой определить собственную директиву

0

В настоящее время я пытаюсь определить свою собственную директиву в Angular, которая не более чем console.log(). Я попробовал следующее:

log.directive.js:

export default function () {
    return {
        bindToController: {
            val: '=log-dir'
        },
        controllerAs: '$ctrl',
        template: "",
        controller: function () {
            console.log("test");
        }
    };
}

Затем я импортирую директиву:

import logDirDirective from '../../directives/log.directive';

и добавьте его в мой модуль:

angular.module(MODULE_NAME).directive('log-dir',logDirDirective);

И затем, в своем HTML, я пытаюсь использовать его как:

<div class="......" log-dir>
</div>

Теперь я ожидал увидеть test на консоли после загрузки, но я этого не делаю. Где ошибка?

PS: Пожалуйста, обратите внимание, что я относительно новичок в угловых и совершенно новых для самодельных директив, поэтому моя ошибка может показаться мне очень тривиальной.

Теги:

1 ответ

1
Лучший ответ

Названия директив и привязка/область конфигурации должны соответствовать соглашениям о нормализации. Это означает, что правильное определение директивы должно быть:

angular.module(MODULE_NAME).directive('logDir', logDirDirective);

И то же самое для bindings config:

bindToController: {
    val: '=logDir'
},

Проверьте "Условные обозначения именования" УгловыеJs " для более подробного ответа на вопрос.

UPD.

Вот демонстрация вариаций с @и = привязками: http://plnkr.co/edit/mA0YnVhd7t241kdAvgRl?p=info

  • 0
    Кажется, это ничего не меняет, мне интересно, почему директивы angulars будут работать тогда (например, ng-click и т. Д.)
  • 0
    Любые ошибки в консоли?
Показать ещё 12 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню