#angular #forms
Вопрос:
Я создаю кучу ящиков выбора через цикл ngFor вместе с внутренним циклом для опций. Если имя поля выбора совпадает с параметром, этот параметр следует выбрать предварительно. Мой код работал, если я не перешел на формы, управляемые шаблонами:
<div *ngFor="let currentFeedKey of currentFeedKeys" class="row mb-3">
<label class="form-label" class="col-sm-6 col-form-label">{{ currentFeedKey }}</label>
<select class="form-select" class="col-sm-6" ngModel name="{{currentFeedKey}}" #currentFeedKey="ngModel">
<option>Bitte auswählen...</option>
<option *ngFor="let wantedFeedKey of wantedFeedKeys; let i = index" [value]="wantedFeedKey"
[selected]="wantedFeedKey === currentFeedKey">{{ wantedFeedKey }}</option>
</select>
</div>
Это та часть, которая не работает: [выбрано]=»wantedFeedKey === Текущий ключ»…
тнх
Комментарии:
1. есть ли какая-либо причина не использовать простую переменную и
[(ngModel)]
? Для меня немного «странно» использовать ссылочную переменную шаблона для управления формой, управляемой шаблоном. Посмотрите документы , убедитесь, что вы чувствуете себя более комфортно
Ответ №1:
Может возникнуть проблема с #currentFeedKey=»ngModel». Здесь вы назначаете ngModel для currentFeedKey. currentFeedKey ссылается на ngModel вместо элемента из currentFeedKeys.
Пожалуйста, внесите следующее изменение и попробуйте. изменение:- Здесь мы создаем новую переменную шаблона с новым именем (модель currentFeedKeyModel) вместо ключа currentFeedKey.
#currentFeedKeyModel=»ngModel»
<div *ngFor="let currentFeedKey of currentFeedKeys" class="row mb-3">
<label class="form-label" class="col-sm-6 col-form-label">{{ currentFeedKey }}</label>
<select class="form-select" class="col-sm-6" ngModel name="{{currentFeedKey}}" #currentFeedKeyModel="ngModel">
<option>Bitte auswählen...</option>
<option *ngFor="let wantedFeedKey of wantedFeedKeys; let i = index" [value]="wantedFeedKey"
[selected]="wantedFeedKey === currentFeedKey">{{ wantedFeedKey }}</option>
</select>
</div>
Ответ №2:
Спасибо за эту помощь. Вот как я это решил:
<div *ngFor="let currentFeedKey of currentFeedKeys" class="row mb-3">
<label class="form-label" class="col-sm-6 col-form-label">{{ currentFeedKey }}</label>
<select class="form-select" class="col-sm-6" [ngModel]="currentFeedKey" name="{{currentFeedKey}}">
<option>Bitte auswählen...</option>
<option *ngFor="let wantedFeedKey of wantedFeedKeys" [value]="wantedFeedKey">{{ wantedFeedKey }}</option>
</select>
</div>
Комментарии:
1. если вы используете bannana sintax
[(ngModel)]
каждый раз, когда вы меняете выбор, вы также меняете переменную