Angular 如何为角度';必须是httpclient
我正在尝试使用angular的新httpclient从api获取数据,我得到的错误属性在IMessage[]类型上不存在。如何为以下响应编写接口Angular 如何为角度';必须是httpclient,angular,angular-cli,Angular,Angular Cli,我正在尝试使用angular的新httpclient从api获取数据,我得到的错误属性在IMessage[]类型上不存在。如何为以下响应编写接口 {"data":{"Messages":[{"Id":28,"MessageContent":"test data tsn","FromUserId":"74df8f98-2925-4242-8d32-8b09f3691396","UserName":"365@test.com","ToUserId":"96b1c943-ade0-4026-b8ed-
{"data":{"Messages":[{"Id":28,"MessageContent":"test data tsn","FromUserId":"74df8f98-2925-4242-8d32-8b09f3691396","UserName":"365@test.com","ToUserId":"96b1c943-ade0-4026-b8ed-0f4a6231e586","ProductId":null,"ParentMessageId":null,"Subject":"Test Message by Dev Team","StyleNumber":null}],"Pagination":{"Page":1,"PageLength":20,"TotalRecords":20,"TotalPages":1},"MessageLimit":{"TotalMessageCount":5,"RemainingMessageCount":3}}}
我在这里试过的
export interface IMessage {
data: {
Messages: Messages[];
};
}
interface Messages {
id: number;
messageContent: string;
fromUserId: string;
toUserId: string;
productId?: number;
parentMessageId?: number;
subject: string;
styleNumber?: string;
}
我的闪电战
//这是代码
从“@angular/core”导入{Component,Input,OnInit};
从“rxjs/Observable”导入{Observable};
从“./message.interface”导入{IMessage};
从“@angular/common/http”导入{HttpClient,HttpResponse,HttpParams,HttpHeaders};
@组成部分({
选择器:“你好”,
模板:`Hello{{name}}!`,
样式:[`h1{font-family:Lato;}`]
})
导出类HelloComponent实现OnInit{
构造函数(专用http:HttpClient){
log(“消息存储库服务实例”);
}
只读根目录URL='/52.70.78.117:7111/api/message';
恩戈尼尼特(){
这是一个.getAllMessages();
}
@Input()名称:string;
信息;
getAllMessages():可观察{
this.getAllMessagesFromApi()
.订阅(数据=>{
console.log('data is=>',data.data);
这条消息=数据;
},
错误=>{
log('获取消息列表时出错');
});
返回;
}
getAllMessagesFromApi():可观察{
返回this.http.get(`${this.ROOT\uURL}/list`);
}
}
您应该将getAllMessagesFromAPI()
方法返回的类型更改为IMessage
// method returns type IMessage
getAllMessagesFromApi(): Observable<IMessage> {
// http request returns type IMessage
return this.http.get<IMessage>(`${this.ROOT_URL}/list`);
}
看来你的回答是对的。您可以添加分页和MessageLimit属性。但这会显示类型错误。如果您询问错误,请发布相关代码以及准确完整的错误消息。您仍然没有发布错误。但是您已经告诉TypeScript,getAllMessages()返回一个可观察的,但它不返回任何内容。谢谢。你想写下这个作为答案吗?
// method returns type IMessage
getAllMessagesFromApi(): Observable<IMessage> {
// http request returns type IMessage
return this.http.get<IMessage>(`${this.ROOT_URL}/list`);
}
.subscribe(data => {
this.messages = data.data.Messages;
},