Angular指令名称:只允许小写字母?
我的代码:
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试图让每个人都开心!
有些人更喜欢使用数据属性,比如data-abc-abc
,我假设让validation者高兴。 其他人更喜欢使用像abc:abc
这样的命名空间,而其他人更喜欢使用实际的伪指令名称abcAbc
。 甚至全部大写ABC_ABC
。 或者像x-abc-abc
这样的扩展属性。
AngularJS将HTML中使用的名称标准化以覆盖所有这些情况。 data-
和x-
被剥离,其余部分用:
, -
和_
作为词边界。 这使得abcAbc
从上面提到的用于查找JavaScript中声明的指令的情况。
这就是所谓的属性规范化(US:属性规范化),可以在AngularJS文档和源代码中find 。
您应该在html和camelCase中使用以逗号分隔的名称作为指令中的相应名称。
正如你可以阅读的文档: Angular使用名称与破折号的属性名称和camelCase为相应的指令名称)
这里: http : //docs.angularjs.org/tutorial/step_00