model-view-controller - AngularJS 的验证策略

标签 model-view-controller validation angularjs

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

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

在此示例中, View 定义 user.name 是必需的。这就像说 View 定义了模型的正确形状。是不是有点落后了? View 不应该反射(reflect)状态,包括错误状态吗?

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

最佳答案

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

看看

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

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

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

关于model-view-controller - AngularJS 的验证策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12751638/

相关文章:

javascript - jQuery 确保填写所有表单字段

angularjs - Angular -ui-select2和breezejs : load ajax list after typing in 2 characters

javascript - 使用 backbone.js 构建监控前端

java - 在 View 中保留 Controller 的引用或使用监听器

php - 锂和验证复杂形式的输入 - 如何?

language-agnostic - 是否有开源的CAPTCHA解决方案?

ruby-on-rails - Rails 从 View 中安排作业

javascript - 尽管只满足几个条件之一,但 if 语句返回 true (jQuery)

javascript - 在 AngularJS 中无需 keyup 或 keypressed 即可触发 ng-change 函数

javascript - 无法使用 HTML5 在 Angular JS 中获取 WCF 结果