自定义验证器示例
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。否则,你可以返回描述错误的对象。