Angular指令名称:只允许小写字母?

问题描述 投票:74回答:3

我的代码:

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指令有特殊的命名规则?

angularjs angularjs-directive
3个回答
119
投票

AngularJS试图让每个人都开心!

有些人喜欢使用数据属性,比如data-abc-abc,我假设让验证者感到高兴。其他人更喜欢使用像abc:abc这样的名称空间,而其他人更喜欢使用实际的指令名称abcAbc。甚至所有帽子ABC_ABC。或者像x-abc-abc这样的扩展属性。

AngularJS规范化HTML中使用的名称以尝试涵盖所有这些情况。 data-x-被剥夺,其余部分来自:-_作为单词边界。这使abcAbc来自上面提到的情况,用于查找在JavaScript中声明的指令。

这都称为属性规范化(US:属性规范化),可以在AngularJS documentationsource code中找到。


25
投票

您应该在html和camelCase中使用以短划线分隔的名称作为指令中的相应名称。

正如您可以在doc上阅读的那样:Angular使用name-with-dashes作为属性名称,使用camelCase作为相应的指令名称)

在这里:http://docs.angularjs.org/tutorial/step_00


0
投票

好吧,指令名称必须全部小写,至少在AngularJS版本1.4.9中,否则我得到一个$ inject无法找到错误

© www.soinside.com 2019 - 2024. All rights reserved.