我的代码:
app.directive('abcabc', function (){ alert('directive');}); // working
但
app.directive('abcAbc', function (){ alert('directive');}); // not working !
app.directive('abc-abc', function (){ alert('directive');}); // not working !
我做错了吗?或者,Angular指令有特殊的命名规则?
发布于 2013-08-01 18:01:35
AngularJS试图让每个人都开心!
有些人更喜欢使用数据属性,比如data-abc-abc
,我想这是为了让验证器满意。其他人更喜欢使用像abc:abc
这样的名称空间,而其他人则更喜欢使用实际的指令名abcAbc
。甚至全是大写的ABC_ABC
。或者像x-abc-abc
这样的扩展属性。
AngularJS对HTML中使用的名称进行了规范化,试图涵盖所有这些情况。data-
和x-
被剥离,其余部分以:
、-
和_
作为单词边界。这从上面提到的情况中生成了abcAbc
,它用于查找在JavaScript中声明的指令。
这一切都称为属性规范化(US: attribute normalization),可以在AngularJS documentation和source code中找到。
发布于 2018-03-05 20:14:43
指令名必须全部小写,至少在AngularJS版本1.4.9中是这样,否则我会得到一个$inject can't be found错误
https://stackoverflow.com/questions/17990864
复制相似问题