我想为我的角度表单组编写一个自定义的异步验证器,该步骤是检查URL是否可访问。但是,如果我对从AbstractControl更改的值进行去抖动,则Control总是以某种方式无效。 到目前为止,这是我的代码
networkx.margulis_gabber_galil_graph(3)
当前的去抖时间呼叫没有任何作用
预先感谢
答案 0 :(得分:0)
您可能必须在验证器之外进行反跳。如果输入源不断发出信号,验证器将连续被调用,并在http调用不执行任何操作后将反跳操作放进去。
export class UrlValidator {
static controlValue=new Subject()
static createValidator(http: HttpClient) {
UrlValiator.controlValue.next(control.value)
return (control: AbstractControl) => {
return controlValue.pipe(
debounceTime(1500),
switchMap(()=>http(url))
catchError(err => {
console.log('err', err);
if (err.status && err.status === 200) return of(null);
return of({ input: 'urlError' });
})
);
};
}
}
答案 1 :(得分:0)
好的,问题是,Observable卡在了挂起状态。
在http observable中添加[IndexerName("Chars")]
public extern char this[int index] { [SecuritySafeCritical, __DynamicallyInvokable, MethodImpl(MethodImplOptions.InternalCall)] get; }
可以达到目的