自定義驗證器示例

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。否則,你可以返回描述錯誤的物件。