【问题标题】:AngularJS Validate all forms on application loadAngularJS在应用程序加载时验证所有表单
【发布时间】:2014-11-24 15:05:01
【问题描述】:

我的应用程序有一个左侧导航,每个链接旁边显示的符号表明该页面的表单是否有效。当用户从一个页面点击到另一个页面时,Angular 会验证表单并显示正确的符号。我现在需要在用户进入应用程序时立即显示验证符号,而不是要求用户访问每个页面以查看其是否有效。有没有办法手动触发每个表单进行验证,同时仍然使用 Angular 的内置表单验证?我的一个想法是以编程方式导航到每个页面以初始化和验证每个表单。到目前为止,使用 AngularUI 路由器的 $state.go 对我来说还没有工作,但我会更多地使用它。还有其他想法吗?谢谢!

【问题讨论】:

  • 页面都在一个控制器下吗?或者至少是所有表格?
  • 有一个父控制器,他们都可以访问。我找到了一种方法来完成这项工作,但它很hackish并且有一些问题。我最终走向了一个完全不同的方向(见发布的答案)。

标签: javascript angularjs angularjs-validation


【解决方案1】:

我最初的解决方案是将所有表单的 HTML 注入父视图并隐藏它们,以便在应用加载时它们在 DOM 中并立即得到验证。这行得通,但是在验证从有效到无效闪烁时出现了一些问题,并且由于 DOM 较大而影响了性能。

我找到的更好的解决方案是废弃内置的 Angular 验证并创建自己的验证函数。在初始应用程序加载时在我的控制器中调用验证函数,也从指令中调用验证函数,以便在用户更改输入时更新字段的有效性。一旦我确信我没有通过使用 Angular 的内置验证获得太多收益,这个解决方案就很容易实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 2016-10-31
    相关资源
    最近更新 更多