Угловое автоматическое назначение выпадающего - PullRequest
1 голос
/ 27 сентября 2019

У меня есть выпадающий угловой тег выбора здесь.Раскрывающийся список не будет выбран при назначении значения.

<select [(ngModel)]="controlType" #ctrl="ngModel" class="form-control" [ngModelOptions]="{standalone: true}">
    <option [value]="undefined" selected>SILA PILIH</option>
    <option *ngFor="let alertControl of alertControlList" [ngValue]="alertControl">{{ alertControl?.desc }}
    </option>
</select>

controlType значение из БД

{
    "errorCode": null,
    "errorMessage": null,
    "id": "b9e86e1a-cabc-11e8-9257-31ce15c52e16",
    "createdBy": "a6ef4d81-744e-49e7-9e1d-ab74a14935d6",
    "lastModifiedBy": "a6ef4d81-744e-49e7-9e1d-ab74a14935d6",
    "createdDate": 1538977256000,
    "lastModifiedDate": 1538977256000,
    "deleted": null,
    "active": true,
    "version": 0,
    "code": "1",
    "desc": "why"
}

значение alertControlList

[{
    "code": "2",
    "version": "0",
    "desc": "why",
    "id": "b9e8bc3b-cabc-11e8-9257-31ce15c52e16",
    "HEX(id)": "B9E8BC3BCABC11E8925731CE15C52E16"
}, {
    "code": "1",
    "version": "0",
    "desc": "why",
    "id": "b9e86e1a-cabc-11e8-9257-31ce15c52e16",
    "HEX(id)": "B9E86E1ACABC11E8925731CE15C52E16"
}]

Это работает только когда ясделать сопоставление объектов здесь.Любое другое более простое решение?

for (let int i = 0; i < alertControlList.length; i++) {
    if (alertControlList[i].code === dropdown.code) {
        console.log('do MATCH' + i + ' code' + dropdown.code);
        controlType = alertControlList[i];
    }
}

Ответы [ 2 ]

2 голосов
/ 27 сентября 2019

используйте [selected]="alertControl.code === dropdown.code" вместо.

1 голос
/ 27 сентября 2019

Это не работает напрямую, поскольку вы устанавливаете значение option для объекта, а ngModel не соответствует этому значению, поэтому оно не будет отображаться как выбранное.Вместо.Вы также, кажется, используете как ngModel с двусторонним связыванием, так и ngModel с ngForm.Используйте любой из них.Если вы используете ngForm для получения значений формы, вы можете установить значение на select с помощью value и изменить значение option на уникальное свойство в alertControl, например code.

<select #ctrl="ngModel" [value]="controlType.code" class="form-control">
    <option *ngFor="let alertControl of alertControlList" [value]="alertControl.code">{{ alertControl?.desc }}</option>
</select>
...