7

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

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

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

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

4

1 回答 1

1

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

看一下

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

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

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

于 2012-10-06T08:59:05.973 回答