Угловой сервис, наблюдаемый для возврата данных вложенного массива - PullRequest
0 голосов
/ 16 ноября 2018

Моя конечная точка содержит вот так

{
        'dsco_st_license': {
            'ttco_st_license': [
                {
                    'csl_state': 'AK',
                    'csl_license_name': 'Specialty Contractor',
                    'csl_license_code': 'Communications',
                    'csl_license_number': '123456'
                },
                {
                    'csl_state': 'AL',
                    'csl_license_name': '',
                    'csl_license_code': '',
                    'csl_license_number': 'Not Required'
                }
            ]
        }
    }

, а вот мой сервис

ngOnInit() {
    this._WebLicenseServiceService.getWebLicensesHttpCall()
        .subscribe(data => this.weblicenses = data,
        err => console.error('Observer got an error: ' + err),
        () => console.log('close loading spinner')
    );

    console.log(this.weblicenses);
}

когда я console.log (this.weblicenses);он не содержит данных.Вместо этого выглядит так:

[]length: 0__proto__: Array(0)

Я также пытался

console.log (this.weblicenses ['dsco_st_license'] ['dsco_st_license']);

Но это ошибкииз-за моего интерфейса

export interface IWeblicense {
csl_state: string;
csl_license_name: string;
csl_license_code: string;
csl_license_number: string;

}

Как я могу получить ttco_st_license для возврата?

1 Ответ

0 голосов
/ 16 ноября 2018

Доступ к данным ответа внутри функции подписки, которая гарантирует, что они будут выполнены после завершения ответа.

ngOnInit() {
    this._WebLicenseServiceService.getWebLicensesHttpCall()
        .subscribe(data => {
           this.weblicenses = data;
           console.log(this.weblicenses); //<--- Get the data after call completes.
           console.log(this.weblicenses.dsco_st_license. ttco_st_license); //<---ttco_st_license
         },
        err => console.error('Observer got an error: ' + err),
        () => console.log('close loading spinner')
    );

    // console.log(this.weblicenses); //<-- Remove this since it will return undefined
}
...