当定义angularJs指令时,我们必须以'camelCase'语法的形式命名它,但是当我们使用它时,我们必须以'camel-case'的形式命名它.问题是为什么需要这个?
我知道这是为了避免命名冲突(现在/将来),但是为什么我们必须在定义和使用时对它进行不同的命名.我们不能直接以"驼峰式"的形式定义它吗?
dfs*_*fsq 23
它有两个重要原因.
首先,HTML属性不区分大小写,这意味着"someName"和"somename"是相同的属性.因此,最好的方式是使用"kebab-case"表示法来分隔属性名称中的单词.这就是我们为HTML属性和标签名称使用"attribute-name"语法的原因.
另一方面,kebab-case名称在Javascript中不是有效的标识符,因此为了使用Angular指令这样的名称,我们必须使用详细括号表示法.但是由于在Javascript世界中,camelCase是命名变量和对象属性的标准事实,因此Angular使用规范化(参见source)将kebab-case名称转换为camelCase,反之亦然.
| 归档时间: |
|
| 查看次数: |
2354 次 |
| 最近记录: |