Ionic 4 Reactive Forms - ion-select не показывает начальные значения при редактировании - PullRequest
0 голосов
/ 13 марта 2019

Я видел несколько сообщений на эту тему для более старых версий ionic, но нет ответов для ionic 4 и реактивных форм ...

У меня есть выбор для моей 'gameForm':

<ion-select formControlName="team"  placeholder="Select a Team" ok-text="Okay" cancel-text="Dismiss">
        <ion-select-option size="12" *ngFor="let team of teams | async" [value]="team">
            {{ team.year }} - {{ team.name }} ({{ team.weeknight }}'s)
        </ion-select-option>
    </ion-select>

Когда я создаю новую игру, селект показывает заполнитель, я могу выбрать команду и создать объект, сладкий!Но когда я иду редактировать этот игровой объект, отображается та же форма, но выбор не имеет значения;Я должен вручную нажать на выпадающий список и повторно выбрать команду.

В более старых сообщениях говорится, что нужно использовать [(ngModel)], но если я попытаюсь использовать [{ngModel}]="team", он не только не будет отображаться, но и получит предупреждение в консоли:

«Похоже, что вы используете ngModel в том же поле формы, что и formControlName. Поддержка использования свойства ввода ngModel и события ngModelChange с директивами реактивной формы устарела в Angular v6 и будет удалена в Angular v7.»

Не уверен, что мне не хватает.Все мои другие поля связываются правильно, используя formControlName.Это ионная ошибка?

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

@ jcuypers Спасибо за подтверждение, что я правильно указал форму formControlName. Я решил проблему. Сначала я обновился с ionic 4 beta 7 до новейшей версии Ionic. затем копаясь на их сайте документации, похоже, что вам нужно использовать свойство CompareWith при работе с объектами. Я добавил атрибут CompareWith и его функцию, и все выглядит хорошо!

0 голосов
/ 13 марта 2019

Правильно работать с полями реактивной формы в разметке, чтобы определить formControlName для каждого поля. это имя должно соответствовать определению формы в компоненте.

вы можете использовать setValue и PatchValue для инициализации полей формы со значением.

убедитесь, что свойство value поля выбора связано с правильным значением. Похоже, он привязан к полному объекту, а не к полю.

...