angularjs指令中的名称约定

时间:2013-10-21 19:32:21

标签: angularjs

这对我有用(服务器端验证示例):

AngularJS: integrating with server-side validation

但是,我决定提出更多问题。

在该示例中,我们使用 unique-email 指令:

<input type="email" ng-model="userEmail" name="userEmail" required unique-email/>

但是在创建指令时,我们使用 uniqueEmail

app.directive('uniqueEmail', function($http) { ..

为什么呢?是否以某种方式在名称中命名约定/规则?角度如何知道在哪里看以及如何将它们连接到另一个?

我只是想知道因为当我使用<input ... required uniqueEmail时它不起作用。直到我输入&#34; unique-email&#34;

如果我输入相同内容:

app.directive('unique-email', function($http) {

在我输入uniqueEmail

之前,它将无效

因此,在使用指令和定义它时,没有机会使用一个样式名称。

2 个答案:

答案 0 :(得分:17)

来自here

  

指令有诸如ngBind之类的骆驼名称。该指令可以   通过将驼峰案例名称翻译成蛇案例来调用   特殊字符:, - 或_。可选地,指令可以是   以x-或数据为前缀,使其符合HTML验证器。

所以,是的,它是一个有角度的惯例。

答案 1 :(得分:5)

对于标签和属性,仅使用小写是html约定(部分原因是HTML5不区分大小写.class =“”与ClaSS =“”相同)。 Angular不希望将指令名约束为小写。因此,它允许在Angular中使用大写,然后处理将这些名称转换为html标准蛇案例。

因此,您可以在Angular中获得命名灵活性并提高可读性,同时保持符合html命名标准。

请注意,如果您只使用小写名称,则无需担心名称转换。当然,这可能会以牺牲Angular代码的可读性为代价。