【问题标题】:Angular service observable to return nested array data可观察的角度服务以返回嵌套数组数据
【发布时间】:2019-04-20 01:21:15
【问题描述】:

我的端点包含这样的

{
        '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 被退回?

【问题讨论】:

  • 您在获取数据之前正在记录。将日志移至subscribe
  • 您是订阅之外的 console.logging。因此,console.log 将在订阅完成之前很久执行您的数据。将 console.log 移到您订阅的匿名函数中。

标签: arrays json angular observable


【解决方案1】:

在 subscribe 函数中访问响应数据,确保响应完成后执行。

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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 2019-04-27
    • 2018-12-20
    • 2017-10-03
    • 1970-01-01
    相关资源
    最近更新 更多