Я сделал динамический выбор c, когда вы выбираете значение из первого выбора, он устанавливает параметры второго.
Html:
<select clrSelect name="reviewerTypes" (change)="onChange(currentReviewerType)"
[(ngModel)]="currentReviewerType">
<option [value]="" selected disabled hidden>Choose value</option>
<option *ngFor="let reviewType of reviewerTypes" [ngValue]="reviewType">
{{reviewType.reviewType}}
</option>
</select>
<select clrSelect name="options" [(ngModel)]="currentReviewer">
<option value="" selected disabled hidden>Choose value</option>
<option *ngFor="let reviewer of reviewers" [ngValue]="reviewer">
{{reviewer.user}}
</option>
</select>
TS:
onChange(selection){
let reviewerId = selection;
console.log(selection)
this.dataService.GetReviewersByType(reviewerId.id).subscribe( response =>
this.reviewers = response, error => console.log(error));
}
addReviewer(){
console.log(this.currentReviewer)
let reviewerToAdd = {reviewerType:this.currentReviewerType,
reviewer:this.currentReviewer}
this.reviewersAdded.push(reviewerToAdd)
console.log(this.reviewersAdded)
}
и работает просто отлично, каждый раз, когда я изменяю значение первого выбора, оно меняет значение со второго.
Моя проблема в том, что второй , когда он изменяется, на дисплее изменяются значения, и кажется, что первое выбрано, но оно сохраняет значение последнего, если я не выберу другое вручную.
Пример
Первый выбирает value="1"
, поэтому второй отображает options={"a", "b", "c"}
и позволяет предположить, что я выбрал value="b"
.
Затем я изменяю значение первый до value="2"
, затем второй меняется на options={"d", "e", "f"}
, но он сразу же отображается, так как я выбрал value="d"
хотя бы визуально, как кажется.
Если это значение, которое я хочу, то я нажму кнопку отправки, но когда я сделаю console.log()
со значением, которое оно показывает мне, что второй имеет value="b"
, который я выбрал в начале.
Если я хочу value="d"
, я должен выбрать другой, а затем выбрать тот.
Есть ли способ сбросить выбор, чтобы он выбирал значение по умолчанию каждый раз, когда он изменяет значения? или у тебя есть другие идеи по этой проблеме?