自定義驗證器示例
Angular 2 有兩種自定義驗證器。第一個示例中的同步驗證器將直接在客戶端上執行,而非同步驗證器(第二個示例)可用於呼叫遠端服務為你進行驗證。在此示例中,驗證程式應呼叫伺服器以檢視值是否唯一。
export class CustomValidators {
static cannotContainSpace(control: Control) {
if (control.value.indexOf(' ') >= 0)
return { cannotContainSpace: true };
return null;
}
static shouldBeUnique(control: Control) {
return new Promise((resolve, reject) => {
// Fake a remote validator.
setTimeout(function () {
if (control.value == "exisitingUser")
resolve({ shouldBeUnique: true });
else
resolve(null);
}, 1000);
});
}}
如果你的控制值有效,則只需向呼叫者返回 null。否則,你可以返回描述錯誤的物件。