[英]error TS2739: Type '{}' is missing the following properties from type
managestation.ts管理站.ts
import { Component, OnInit } from '@angular/core';
import { Station } from 'src/app/_models/station';
import { StationService } from 'src/app/_services/station.service';
import { AddStaModalComponent } from 'src/app/modal/station/add-sta-modal/add-sta-modal.component';
import { EditStaModalComponent } from 'src/app/modal/station/edit-sta-modal/edit-sta-modal.component';
import { DataSharingService } from 'src/app/_services/data-sharing.service';
import { ActivatedRoute, Router, NavigationEnd } from '@angular/router';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
@Component({
selector: 'app-managestation',
templateUrl: './managestation.component.html',
styleUrls: ['./managestation.component.scss'],
})
export class ManagestationComponent implements OnInit {
sta: Station;
mySubscription: any;
constructor(
private dataSharing: DataSharingService,
private staService: StationService,
private activatedRoute: ActivatedRoute,
private router: Router
) {}
getStationsByOrg(id) {
this.staService.getStationsByOrg(id)
.then((allData) => {
console.log(allData);
this.sta = allData;
});
}
}
managestation.component.html管理站.component.html
<ion-content class="body">
<ion-button expand="block" (click)="onAddStation()">Add Station
<ion-icon name='add' slot="end"></ion-icon>
</ion-button>
<ion-list>
<ion-item *ngFor="let s of sta">
<ion-label>{{ s.name }}</ion-label>
<ion-label>{{ s.orgId }}</ion-label>
<ion-icon name='create' slot="end" (click)="onEditStation(s.id)"></ion-icon>
<ion-icon name='trash' slot="end" (click)="onDeleteStation(s.id)"></ion-icon>
</ion-item>
</ion-list>
</ion-content>
station.ts站.ts
import { StationStatus } from './station-status.enum';
export class Station {
id: number;
name: string;
orgId: number;
address?: string;
status: StationStatus;
constructor(id?: number, name?: string, orgId?: number, address?: string, status?: StationStatus) {
this.id = id;
this.name = name;
this.orgId = orgId;
this.address = address;
this.status = status;
}
}
Terminal Error终端错误
ERROR in src/app/members/managestation/managestation.component.ts(66,10): error TS2739: Type '{}' is missing the following properties from type 'Station': id, name, orgId, status src/app/members/managestation/managestation.component.ts(66,10) 中的错误:错误 TS2739:“{}”类型缺少“Station”类型中的以下属性:id、name、orgId、status
Console Output控制台输出
Array [ (4) […] ]
managestation.component.ts:65:16
(1) […]
0: (4) […]
0: Object { id: 5, orgId: 2, name: "BitCo Gas Jos North", … }
1: Object { id: 6, orgId: 2, name: "BitCo Gas Awolowo Road ", … }
2: Object { id: 7, orgId: 2, name: "BitCo Gas Kano Central", … }
3: Object { id: 8, orgId: 2, name: "BitCo Gas Efik", … }
length: 4
<prototype>: Array []
length: 1
<prototype>: Array []
Am getting the result in console.log but i can't use it in my html component file在 console.log 中得到结果,但我不能在我的 html 组件文件中使用它
Result结果
[
[
{
"id": 9,
"orgId": 3,
"name": "Conap Corp Ikeja",
"address": "23, Ogunlowo Street, Obafemi Awolowway. Ikeja, Lagos",
"status": "active"
},
{
"id": 10,
"orgId": 3,
"name": "Conap Corp Ota",
"address": "23, Ogunlowo Street, Obafemi Awolowway. Ikeja, Lagos",
"status": "active"
},
{
"id": 11,
"orgId": 3,
"name": "Conap Corp Agbara",
"address": "23, Ogunlowo Street, Obafemi Awolowway. Ikeja, Lagos",
"status": "active"
},
{
"id": 12,
"orgId": 3,
"name": "Conap Corp Agbado",
"address": "23, Ogunlowo Street, Obafemi Awolowway. Ikeja, Lagos",
"status": "active"
}
]
]
You receive an empty object {}
from the API call and the type of data you might set for the API call is Station
.您从 API 调用收到一个空对象{}
,您可能为 API 调用设置的数据类型是Station
。 Also, the sta
type is Station
: sta: Station;
此外, sta
类型是Station
: sta: Station;
. . You cannot set an empty object to sta
.您不能将空对象设置为sta
。
Update:更新:
Looks like you are allData
is an observable.看起来你是allData
是一个可观察的。
you also have another error, looking at your code:您还有另一个错误,请查看您的代码:
export class Station {
id: number;
name: string;
orgId: number;
address?: string;
status: StationStatus;
constructor(id?: number, name?: string, orgId?: number, address?: string, status?: StationStatus) {
this.id = id;
this.name = name;
this.orgId = orgId;
this.address = address;
this.status = status;
}
look at the attributes and please, note that.查看属性,请注意。 The problem is that if you look at the declaration, you are saying that most of those attributes can't be null, but if you look at the constructor, you are saying the opposite, which one is correct?问题是,如果您查看声明,您会说这些属性中的大多数不能为空,但是如果您查看构造函数,您会说相反,哪个是正确的?
I added allData[0]
and it working now我添加了allData[0]
并且它现在可以工作了
getStationsByOrg(id) {
this.staService.getStationsByOrg(id)
.then((allData) => {
console.log(allData);
this.sta = allData[0];
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.