在Angular应用程序中,我无法读取使用[dataSource]创建的服务。
错误TypeError:无法将未定义或null转换为对象 错误TypeError:无法读取未定义的属性'getService'
component.ts
import { Component, OnInit } from '@angular/core';
import { RailroadAgreementService } from '../../services/railroad-agreement.service';
import { RRA_ID } from '../../models/RRA_ID';
@Component({
selector: 'app-railroad-agreements',
templateUrl: './railroad-agreements.component.html',
styleUrls: ['./railroad-agreements.component.css'],
})
export class RailroadAgreementsComponent implements OnInit {
public data: RRA_ID[];
constructor(private railroadAgreementService: RailroadAgreementService) {}
ngOnInit(): void {
this.railroadAgreementService.getRRAId().subscribe((data) => {
this.data = data;
console.log(this.data);
})
}
}
component.html
<ejs-treegrid [dataSource]="data">
</ejs-treegrid>
答案 0 :(得分:0)
如果服务方法返回的是“冷”可观察值,则其值最初将为null
,并且您的组件抱怨它无法访问期望的属性,因为它收到了null
而不是对象,数组等。
这是因为Observable代码正在异步运行。
要解决此问题,您可以强制组件等待data
属性为true(不为null,undefined,false为空字符串等)才能呈现:
<ejs-treegrid *ngIf="data" [dataSource]="data"></ejs-treegrid>