Ионная 3: Как я могу получить переменную внутри наблюдаемой - PullRequest
0 голосов
/ 16 декабря 2018

Как я отмечаю в заголовке Как я могу получить переменную внутри наблюдаемой?

temp$ : Observable<any[]>;
onChange(changedValue){
        this.temp$ = this.database.list('Libraries/').valueChanges();       
            this.temp$.subscribe((data) =>{
                console.log(data);
            }); 
         }

Эта функция помогает мне получать данные через push-данные базы данных в Observable, называемую temp $.

Я могу видеть, что находится внутри temp $ из консоли Google Chrome, и это полностью верно, но я не могу добраться до переменной nameOfCity ..

0: {nameOfCity: " esk", nameOfLibrary: "yaa"}
1: {nameOfCity: " esk", nameOfLibrary: "baskabir"}
2: {nameOfCity: " Tokat", nameOfLibrary: "dasdas"}
3: {nameOfCity: " Sivas", nameOfLibrary: "asdasd"}
4: {nameOfCity: " Sivas", nameOfLibrary: "bsad"}
5: {nameOfCity: " esk", nameOfLibrary: "dsad"}
6: {nameOfCity: " Tokat", nameOfLibrary: "dd"}
.
.
.

Как я могу получить nameOfCity из переменной temp $, например temp.nameOfCity

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

Для ясности, во-первых, не temp$ содержит данные, которые вы ищете, а переменная data из вашей функции-стрелки.Поскольку вы должны подписаться на Observable, чтобы получать данные, которые вы ищете, приведенный ниже фрагмент должен направить вас в правильном направлении.

onChange(changedValue) {

    this.database.list('Libraries/').valueChanges()
        .subscribe((data) => {

            // data seems to be an array of object from your example
            // Having this in mind, you can iterate over the array and
            // cityInfos will be used to identify the objects

            for (let cityInfos of data) {
                console.log(cityInfos);
                console.log(cityInfos.nameOfCity);
                console.log(cityInfos.nameOfLibrary);
            }

        });

}

Расширяя это, вы сможете переопределитьпеременная, доступная в области действия стрелки и, более конкретно, где 3 console.log.

0 голосов
/ 16 декабря 2018

похоже, что $ temp является массивом.Поэтому, если вы хотите получить доступ к nameOfCity, вам сначала нужно получить доступ к элементу массива, например так: temp$[0].nameOfCity.

Пожалуйста, дайте мне знать, если это помогает или я что-то не так сделал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...