У меня проблема с доступом к переменной в массиве объектов месяца.
Интерфейс:
export class Month {
constructor(
public id: number, public month: string, public m50: any
) {}
}
Служба:
m50_colour_april = [];
constructor(public db: AngularFireDatabase,) {
this.db.list('sentiment/april').valueChanges().subscribe((colours: any) => {
var m50: [0, 1];
m50 = colours[2];
this.m50_colour_april = m50[Object.keys(m50)[0]];
})
}
Months = [
new Month(1, 'May', this.m50_colour_april),
]
Компонент:
this.months = this._route.paramMap.pipe(
switchMap((params: ParamMap) =>
this._plot.getMonth(params.get('id')))
);
this.months.subscribe(locations => { console.log(locations) });
При попытке вызвать переменную "m50_colour_april" я получаю неопределенный массив, в то время как я ожидаю, что получу вызов от моего API Firebase.Это прекрасно работает при регистрации результата в рамках моего конструктора в моем сервисе, но по какой-то странной причине он не работает, когда я помещаю его в массив Months = [].
output: Month {id: 1, month: "May", m50: Array(0)}
expected output: Month {id: 1, month: "May", m50: "yellow"}