AngularJS的验证策略

Hum*_*rto 7 validation model-view-controller angularjs

我正在评估AngularJS,到目前为止我对它非常热衷.但是验证方面缺少一些东西:可用的选项,例如内置机制AngularUI计划,通过指令实现验证器,因此,每个验证都应该在视图中声明:

<form ng-controller="SomeController">
    <!-- Notice the 'required' attribute directive below: -->
    <input type="text" ng-model="user.name" name="uName" required />
</form>
Run Code Online (Sandbox Code Playgroud)

在此示例中,视图定义user.name为必需的.这就像说视图定义了模型的正确形状.这不是一点倒退吗?视图是否应该反映状态,包括错误状态?

我错了吗?我想知道是否可以在控制器中应用任何验证器,将模型的数据表示为有效/无效,并相应地更新视图(使用红色绘制表单控件,显示错误消息,清除先前的错误等).我假设AngularJS足够强大,但到目前为止,在文档和示例中我还没有看到像我上面所描述的那样.谢谢!

gan*_*raj 1

我想这全都与视角有关。我认为,您正在定义一个包含表单的视图,并且该表单包含文本类型的输入。您根据需要标记的就是这个文本输入。如果你注意到的话,Angular 并不关心文本是 user.name 还是 user.age 或者其他什么。它只是将该文本输入与必需的相关联。因此,它只是验证该文本输入以及与该模型关联的模型就是最终结果(如果验证通过,则该值进入的位置!)。

看一下

http://docs.angularjs.org/guide/forms

对于自定义表单验证,如果您想要进行非默认验证。

由于您已经知道提前生成的视图(让我们在编译时调用它!),因此您可以关联视图中的所有验证器,因此不必在控制器中执行此操作(这可能是用于运行时验证! )。