Как получить данные из нескольких массивов JSON (оперативные данные из БД) с помощью наблюдаемого в Angular2 - PullRequest
0 голосов
/ 20 ноября 2018

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

{
    "clientInfo": [
        {
            "clientId": "1234",
            "clientName": "Test1234"
        },
        {
            "clientId": "4356",
            "clientName": "Test4356"
        }],
    "realTimeClientInfo": [
        {
            "clientId": "1234",
            "clientName": "Test1234",
           "Location": "Test1234",
            "Designation" :"Test1234"

        },
        {
            "clientId": "4356",
            "clientName": "Test7896",
           "Location": "Test7896",
            "Designation" :"Test7896"
        }]
        }

Я хочу получить данные из второго массива JSON.

В client.component.ts вызовите clientService, как показано ниже:

@Input() clientInfo$: Observable<any>;
constructor(private clientService: ClientService) { }

 ngOnInit() {  this.clientInfo$ = Observable
                            .interval(1000)
                            .startWith(0).switchMap(() => 
  this.clientService.getAllInfo()); }

client.service.ts как показано ниже:

getAllInfo(): Observable<ClientInfo[]> {
    this.http.get<ClientInfo[]>('http://localhost:8080/api/auth/clientInfo'); 

В client.component.html

                <table class="table table-hover">
                    <thead>
                        <tr>
                            <th *ngFor="let col of clientH">{{ col }}</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr *ngFor="let client of clientInfo$ | async ">
                            <td *ngFor="let col of clientH"> {{client [col]}}</td>
                        </tr>
                    </tbody>
                </table>

Если JSON содержит только один единственный массив, этоза работой.Как мы можем использовать ту же логику для извлечения некоторых значений из первого массива и некоторых других значений из второго массива

...