Как проверить, есть ли у rxjs наблюдаемые один элемент или нет? - PullRequest
0 голосов
/ 21 февраля 2019

модель выглядит ниже

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 Вопрос:

чего я хочу достичьis,

я добавляю файл при событии изменения =>

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 = при удалении кнопки - хотите удалить файл из наблюдаемой очереди.(кажется, не работает)

пожалуйста, проверьте стекблиц здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...