角Mime类型验证器返回错误信息

时间:2019-05-28 09:11:15

标签: angular validation

我对视频MIME TYPE验证器有疑问

export const mimeTypeVid = (
  control: AbstractControl
): Promise<{ [key: string]: any }> | Observable<{ [key: string]: any }> => {
  if ((typeof control.value) === 'string') {
    return of(null);
  }
  const file = control.value as File;
  const fileReader = new FileReader();
  const frObs = Observable.create(
    (observer: Observer<{ [key: string]: any }>) => {
      fileReader.addEventListener('loadend', () => {

        let isValid = false;

        console.log('file type '+file.type);
        switch (file.type) {
          case 'video/mp4':
            isValid = true;

            break;
          case 'video/mp4v-es':
            isValid = true;

            break;
          default:
            isValid = false; 
            break;
        }
        console.log("Mime Vid Validators"+ isValid)
        if (isValid) {

          observer.next(null);
        } else {
          observer.next({ invalidMimeType: true });
        }
        observer.complete();
      });
      fileReader.readAsArrayBuffer(file);
    }
  );

  return frObs;
};

此验证程序中的mp4 vids为IsValid true,但

当我尝试使表格有效时:

if(this.TestForm.get('video').valid)

它返回10的9次错误。

我具有与Image类型完全相同的验证器,并且效果很好。

有人可以解释我为什么会这样吗?

谢谢大家的帮助:)

0 个答案:

没有答案