В настоящее время я пытаюсь определить свою собственную директиву в 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: Пожалуйста, обратите внимание, что я относительно новичок в угловых и совершенно новых для самодельных директив, поэтому моя ошибка может показаться мне очень тривиальной.
Названия директив и привязка/область конфигурации должны соответствовать соглашениям о нормализации. Это означает, что правильное определение директивы должно быть:
angular.module(MODULE_NAME).directive('logDir', logDirDirective);
И то же самое для bindings config:
bindToController: {
val: '=logDir'
},
Проверьте "Условные обозначения именования" УгловыеJs " для более подробного ответа на вопрос.
UPD.
Вот демонстрация вариаций с @и = привязками: http://plnkr.co/edit/mA0YnVhd7t241kdAvgRl?p=info
ng-click
и т. Д.)