非同步驗證器
非同步驗證器允許你根據後端驗證表單資訊(使用$ http)。
當你需要訪問由於各種原因而無法在客戶端上儲存的伺服器儲存資訊(例如 users 表和其他資料庫資訊)時,需要使用這些驗證器。
要使用非同步驗證器,可以訪問 input
的 ng-model
併為 $asyncValidators
屬性定義回撥函式。
例:
以下示例檢查提供的名稱是否已存在,如果名稱已存在或未提供,則後端將返回拒絕承諾的狀態。如果該名稱不存在,它將返回已解決的承諾。
ngModel.$asyncValidators.usernameValidate = function (name) {
if (name) {
return AuthenticationService.checkIfNameExists(name); // returns a promise
} else {
return $q.reject("This username is already taken!"); // rejected promise
}
};
現在,每當輸入的 ng-model
發生更改時,此函式將執行並返回帶有結果的 promise。