2014-11-24 65 views
0

我的應用程序有一個左側導航欄,其中的符號顯示在每個鏈接旁邊,以指示該頁面的表單是否有效。當用戶點擊頁面時,Angular會驗證表單和正確的符號顯示。我現在需要在用戶輸入應用程序時立即顯示驗證符號,而不是要求用戶訪問每個頁面以查看它是否有效。有沒有辦法手動觸發每個表單進行驗證,同時仍然使用Angular的內置表單驗證?我有一個想法是以編程方式導航到每個頁面來初始化和驗證每個表單。到目前爲止,還沒有爲我使用AngularUI路由器的$ state.go,但我會再玩一些。任何其他想法?謝謝!AngularJS在應用程序加載時驗證所有表單

+0

頁面是否在一個控制器下?或者至少所有的形式? – SoEzPz 2015-01-30 17:40:37

+0

有一個父控制器,他們都有權訪問。我找到了一種方法來完成這項工作,但這是一件棘手的事情,並且存在一些問題。我最終走向了一個完全不同的方向(見張貼的答案)。 – jsparks 2015-02-07 15:02:36

回答

0

我最初的解決方案是將所有表單的HTML注入到父視圖中,並將它們隱藏起來,以便在應用程序加載並立即進行驗證時它們位於DOM中。這工作,但有一些問題,驗證從有效閃爍到無效,並且由於大型DOM而影響性能。

我着手的更好的解決方案是取消內置的Angular驗證並創建我自己的驗證功能。驗證函數在初始應用程序加載時以及來自指令的控制器中被調用,以便在用戶更改輸入時更新字段的有效性。一旦我確信我自己沒有通過使用Angular的內置驗證獲得更多收益,這個解決方案很容易實現。