2016-10-03 4 views
1

Я пытаюсь установить выбранную опцию в Angular2.Угловой 2 набор выбранного свойства

У меня есть выбор.

<select class="form-control" id="country" [(ngModel)]="facility.country" formControlName="countryField" (ngModelChange)="countrySelected($event)" > 
    <option id="countryOption{{c.id}}" *ngFor="let c of rawCountries" [ngValue]="c">{{c.message}}</option> 
</select> 

И по выбору метода.

countrySelected(): void { 
    this.facility.country = this.rawCountries.find(rawCountries => rawCountries.name === this.facility.country.name); 
} 

У меня есть регистрация в 2 этапа, которые представлены двумя различными компонентами. Этот выбор находится на первом этапе регистрации. У пользователя есть возможность вернуться к первому шагу после его завершения. У меня есть проблема, чтобы выбрать тот вариант, который он выбрал на первом шаге, еще раз выбрав. Он возвращается к опции по умолчанию и моей модели.

Я пробовал это решение, но оно не работает.

<option id="countryOption{{c.id}}" [selected]="facility.country && (facility.country.id==c.id)" *ngFor="let c of rawCountries" [ngValue]="c">{{c.message}}</option> 

Любые идеи, как заставить его работать?

+0

'(ngModelChange) =" countrySelected ($ event) 'просто делает то, что' [(ngModel)] = "объект.country" 'уже делает. –

+0

@ Günter Zöchbauer Спасибо за вашу реакцию. Я удалил ngModelChange. –

+0

Работает ли она сейчас или все еще не работает? Я не уверен, что полностью понимаю ваш вопрос. –

ответ

1

(ngModelChange) = "countrySelected ($ событие) просто делает то, что еще раз [(ngModel)] =" facility.country»делает уже.

Вы должны установить facility.country (в коде) для выбранного пользователя когда вы перемещаетесь назад. Вам нужно сохранить его где-нибудь (совместно используемая услуга или аналогичная), чтобы получить значение, которое пользователь выбрал раньше.

Смежные вопросы