【发布时间】:2020-09-12 11:46:05
【问题描述】:
我在 Angular 7 应用程序上工作我遇到错误属性订阅不存在于类型上
从服务订阅数据时无效。
app.component.ts 上订阅数据功能的错误显示 那么如果可能的话如何解决这个问题?
allReportCategories:any[];
ngOnInit() {
this._displayreport.getallReportCategories().subscribe((data: any[]) => {
this.allReportCategories = data;
});
}
显示报告服务 ts
allReportCategories:any[];
getallReportCategories(){
return
this.allReportCategories=[
{
"reportCategoryID": 1,
"reportCategory": "Dashboard Parametric",
"isDeleted": false,
"menuIcon": "icon-home"
},
{
"reportCategoryID": 2,
"reportCategory": "Monitor Reports",
"isDeleted": false,
"menuIcon": "icon-list"
},
{
"reportCategoryID": 3,
"reportCategory": "Other Reports",
"isDeleted": false,
"menuIcon": "icon-docs"
},
{
"reportCategoryID": 4,
"reportCategory": "PCN Flow",
"isDeleted": false,
"menuIcon": "icon-list"
},
{
"reportCategoryID": 5,
"reportCategory": "Compliance By Document",
"isDeleted": false,
"menuIcon": "icon-home"
}
];
}
stackbliz 上的示例如下:
https://stackblitz.com/edit/create-1arrvm?file=app%2Fdisplayreport.service.ts
更具体地回答我的问题
我在这里改变了什么:
this._displayreport.getallReportCategories().subscribe
【问题讨论】:
-
我可能在这里遗漏了一些东西,但是您服务上的函数“getallReportCategories”只返回一个数组,而不是可以观察/订阅的东西?
-
那么我改变或做什么来解决问题
-
实际上我需要在 app.component.ts 上表示来自 allReportCategories 的数据,所以解决问题的方法是什么
-
你能写出正确的方式将上面的数据数组发送到component.ts
-
如果您需要一次数据,则只需返回数组。如果操作是异步的,那么只需等待 Promise 或回调的返回值。我假设您知道 Observables 和“.subscribe()”的作用,并且您没有使用自己不了解的代码。在某些情况下,您希望多次返回值而没有重复的函数调用,这就是您可能要考虑使用主题/事件/可观察对象的地方:) 在您的情况下,再次,只需返回数组并在另一端重新接收它.无需在这里订阅。
标签: javascript typescript angular7 angular-components