我目前正在尝试在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:请注意,我对角度相对较新,对自制指令完全不熟悉,所以我的错误可能非常简单。
答案 0 :(得分:1)
指令名称和绑定/范围配置必须符合规范化约定。这意味着指令的正确定义应该是:
angular.module(MODULE_NAME).directive('logDir', logDirDirective);
绑定配置相同:
bindToController: {
val: '=logDir'
},
检查"AngularJs directive naming conventions"问题,了解原因的详细解答。
<强> UPD。强>
以下是@和=绑定的变体演示:http://plnkr.co/edit/mA0YnVhd7t241kdAvgRl?p=info