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

Zac*_*ach 75 angularjs angularjs-directive

我的代码:

app.directive('abcabc', function (){ alert('directive');}); // working
Run Code Online (Sandbox Code Playgroud)

app.directive('abcAbc', function (){ alert('directive');}); // not working !
app.directive('abc-abc', function (){ alert('directive');}); // not working !
Run Code Online (Sandbox Code Playgroud)

我做错了吗?或者Angular指令有特殊的命名规则?

Ste*_*ers 119

AngularJS试图让每个人都开心!

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

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

这称为属性规范化(US:属性规范化),可以在AngularJS文档源代码中找到.

  • 这次真是万分感谢!我把文档读作"你可以做任何一种方式",但事实并非如此.我很惊讶到目前为止只有10个赞成票. (6认同)
  • 我改变了最后一段使用美国英语形式的"规范化"而不是英国的"规范化",因为Angular文档使用英语拼写并搜索英语拼写不会返回任何结果. (2认同)

Alw*_*ner 25

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

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

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

  • 它可能是推荐的方式.但我讨厌这一点,因为在所有文件中搜索相应的指令变得更加乏味.特别是对于有很多单词的指令. (6认同)