Как использовать не итеративный наблюдаемый сервис данных - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть наблюдаемая служба данных, которую я хочу использовать на моей угловой странице.Большинство примеров, которые я видел, возвращают набор данных, которые можно поместить в таблицу или в цикл * ngFor.Но что, если у меня есть только 1 элемент данных, и он не является итеративным (это просто объект с одним полем)?Как мне вставить это на страницу?

Страница будет выглядеть примерно так:

<div [dataSource]=“source$”>
    {{ source$.data }}
</div>

Файл ts выглядит так:

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { WatermelonService } from '../../../../providers/chat/watermelon.service';
import { Observable } from 'rxjs';

@Component({
selector: 'app-watermelon',
templateUrl: './watermelon.component.html',
styleUrls: ['./watermelon.component.scss']
})
export class WatermelonComponent implements OnInit {

source$ : Promise<void | Observable<Object>>;

constructor(private _activatedRoute : ActivatedRoute,
private _watermelonService : WatermelonService) { }

ngOnInit() {
const watermelonId = this._activatedRoute.snapshot.paramMap.get('id');
this.source$ = this._watermelonService.getWatermelon(true, watermelonId);
}

}

The WatermelonServiceвыглядит следующим образом:

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { environment } from '../../../environments/environment';
import { HttpClient, HttpErrorResponse, HttpParams, HttpHeaders } from '@angular/common/http';
import { AuthService } from '../../core/auth.service';

@Injectable()
export class WatermelonService {


constructor(private http: HttpClient, public afAuth: AuthService) { }

getWatermelon(atb : boolean, watermelonId : string) {
const url = /* watermelonFunctions endpoint */
    
const options = /* options */
return this.http.get(url, options);
}
}

И, наконец, здесь конечная точка функций firebase, которая возвращает данные:

exports.getWatermelon = functions.https.onRequest((req, res) => {
db.doc(‘…’).get().then(watermelon => {
    res.status(200).send({data: watermelon.data});
});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...