如何检查可观察的rxjs是否有一项?

时间:2019-02-21 12:49:09

标签: angular rxjs

模型如下所示

export class FileQueueObject {
    public file: any; // used any because selected file contain.
    public status: FileQueueStatus = FileQueueStatus.Pending;
    public progress = 0;
    public request: Subscription = null;
    public response: HttpResponse<object> | HttpErrorResponse = null;

    constructor(file: any) {
        this.file = file;
    }

    // statuses
    public isPending = () => this.status === FileQueueStatus.Pending;
    public isSuccess = () => this.status === FileQueueStatus.Success;
    public isError = () => this.status === FileQueueStatus.Error;
    public inProgress = () => this.status === FileQueueStatus.Progress;
    public isUploadable = () => this.status === FileQueueStatus.Pending || this.status === FileQueueStatus.Error;
}

TS

queue: Observable<FileQueueObject[]>;

代码如下

2问题:

我想要实现的是

我正在更改事件中添加文件=>

var files = this.fileInput.nativeElement.files
const queueObj = new FileQueueObject(file);

1:-现在在选择文件上,如果队列中已经有一个文件,那么我想显示这样的验证(现在,即使我没有选择任何文件,它都是火力验证,我不确定为什么)

validate(file: File): boolean {
    // check if file queue already have one record.
    if (this.queue.pipe(map((items) => items.length > 0))) {
      alert('can only 1 file for uploading');
      return false;
    }
    return true;
  }

2 =删除按钮-希望从队列中删除文件。 (似乎不起作用)

请检查stackblitz here

0 个答案:

没有答案