这对我有用(服务器端验证示例):
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
因此,在使用指令和定义它时,没有机会使用一个样式名称。
答案 0 :(得分:17)
来自here:
指令有诸如ngBind之类的骆驼名称。该指令可以 通过将驼峰案例名称翻译成蛇案例来调用 特殊字符:, - 或_。可选地,指令可以是 以x-或数据为前缀,使其符合HTML验证器。
所以,是的,它是一个有角度的惯例。
答案 1 :(得分:5)
对于标签和属性,仅使用小写是html约定(部分原因是HTML5不区分大小写.class =“”与ClaSS =“”相同)。 Angular不希望将指令名约束为小写。因此,它允许在Angular中使用大写,然后处理将这些名称转换为html标准蛇案例。
因此,您可以在Angular中获得命名灵活性并提高可读性,同时保持符合html命名标准。
请注意,如果您只使用小写名称,则无需担心名称转换。当然,这可能会以牺牲Angular代码的可读性为代价。