一尘不染

AngularJs指令命名约定

angularjs

定义angularJs指令时,我们必须以’camelCase’语法的形式对其进行命名,但是当我们使用它时,我们必须以’camel-
case’的形式对其进行命名。问题是为什么要这样做?

我知道这是为了避免命名冲突(现在/将来),但是为什么我们在定义和使用时必须使用不同的名称。我们不能直接以“驼峰案例”的形式定义它吗?


阅读 206

收藏
2020-07-04

共1个答案

一尘不染

它很重要的原因有两个。

首先,HTML属性不区分大小写,这意味着“ someName”和“ somename”是同一属性。因此,最好的样式是使用“ kebab-
case”表示法来分隔属性名称中的单词。这就是为什么我们对HTML属性和标记名称使用“属性名称”语法。

另一方面,kebab-
case名称在Javascript中不是有效的标识符,因此,为了将此类名称用作Angular指令,我们必须使用冗长的括号符号。但是由于在Javascript世界中,camelCase是用于命名变量和对象属性的标准事实,因此Angular使用规范化(请参阅源代码)将kebab-
case名称转换为camelCase,反之亦然。

2020-07-04