AngularJS的验证策略

时间:2012-10-05 18:00:31

标签: model-view-controller validation angularjs

我正在评估AngularJS,到目前为止我对此非常热心。但是验证方面缺少一些东西:可用的选项,例如built-in mechanismsAngularUI initiative,通过指令实现验证器,因此,每个验证都应该在视图中声明:

<form ng-controller="SomeController">
    <!-- Notice the 'required' attribute directive below: -->
    <input type="text" ng-model="user.name" name="uName" required />
</form>

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

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

1 个答案:

答案 0 :(得分:1)

我猜这完全是关于观点的。我看到它的方式是,您正在定义一个包含表单的视图,该表单包含一个text类型的输入。您正在根据需要标记此文本输入。如果您注意,angular不关心文本是user.name还是user.age或其他任何内容。它只是将文本输入与所需的关联。因此,它只是验证文本输入和与该模型关联的模型是最终结果(如果验证通过,值将进入的位置!)。

看看

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

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

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