Я использую Ioni c 5.0 и у меня есть поле выбора ионов. Мне нужно изменить фон поля в зависимости от выбранной опции.
Я пробовал несколько вещей. Моя текущая попытка в приведенном ниже коде - вставить [ngStyle] = "SetBackground (item.id)" в ion-select, но это не работает. Я также пробовал [ngStyle] = "SetBackground ($ event)". Я думал о том, чтобы как-то добавить его в (ionChange) = "OnChange ($ event)", но не мог понять, как это сделать. Похоже, мне просто нужно использовать item.id, чтобы изменить фон, но, хоть убей, я просто не могу это понять.
Вот мой HTML код. Надеюсь, этого достаточно, чтобы найти ответ.
<ion-content>
<div id="game-board">
<ion-img class="map-img" src="../assets/img/map-a.png"></ion-img>
<ion-select [(ngModel)]="selectedVal" class="square" interface="popover" [ngStyle]="SetBackground(item.id)">
<ion-select-option *ngFor="let item of data" [value]="item.id" >
{{ item.name }}
</ion-select-option>
</ion-select>
</div>
</ion-content>
И мой ts
import { Component } from '@angular/core';
import { Platform } from '@ionic/angular';
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage {
data: { id: string; name: string; }[];
constructor(private platform: Platform) {
this.platform.ready().then(() => {
this.data = [
{
id: "transparent", name: ""
},
{
id: "green", name: "Forest"
},
{
id: "red", name: "Village"
},
{
id: "yellow", name: "Field"
},
{
id: "blue", name: "Water"
},
{
id: "purple", name: "Monster"
},
]
})
}
SetBackground(bg) {
let newColor = {
'background-color': bg.target.value,
};
return newColor
}
Я получаю ошибку ...
HomePage.html:12 ERROR TypeError: Cannot read property 'id' of undefined
at Object.eval [as updateDirectives] (HomePage.html:14)
at Object.debugUpdateDirectives [as updateDirectives] (core.js:45259)
at checkAndUpdateView (core.js:44271)
at callViewAction (core.js:44637)
at execComponentViewsAction (core.js:44565)
at checkAndUpdateView (core.js:44278)
at callViewAction (core.js:44637)
at execEmbeddedViewsAction (core.js:44594)
at checkAndUpdateView (core.js:44272)
at callViewAction (core.js:44637)