这对我有用(服务器端验证示例):
但是,我决定提出更多问题.
在该示例中,我们使用unique-email指令:
<input type="email" ng-model="userEmail" name="userEmail" required unique-email/>
Run Code Online (Sandbox Code Playgroud)
但是在创建指令时,我们使用uniqueEmail:
app.directive('uniqueEmail', function($http) { ..
Run Code Online (Sandbox Code Playgroud)
为什么?是否以某种方式在名称中命名约定/规则?角度如何知道在哪里看以及如何将它们连接到另一个?
我只是想知道,因为我用<input ... required uniqueEmail它时不起作用.直到我输入"unique-email"
如果我输入相同:
app.directive('unique-email', function($http) {
Run Code Online (Sandbox Code Playgroud)
直到我输入它才会起作用 uniqueEmail
因此,在使用指令和定义它时,没有机会使用一个样式名称.
标签和属性仅使用小写是html约定(部分原因是HTML5不区分大小写.class =""与ClaSS =""相同).Angular不希望将指令名约束为小写.因此,它允许在Angular中使用大写,然后处理将这些名称转换为html标准蛇案例.
因此,您可以在Angular中获得命名灵活性和可读性,同时保持符合html命名标准.
请注意,如果您只使用小写名称,则无需担心名称转换.当然,这可能是以牺牲Angular代码的可读性为代价的.