Доступ к переменной из компонента в интерфейсе - PullRequest
0 голосов
/ 10 мая 2019

У меня проблема с доступом к переменной в массиве объектов месяца.

Интерфейс:

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"}
...