Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何为角度';必须是httpclient_Angular_Angular Cli - Fatal编程技术网

Angular 如何为角度';必须是httpclient

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-

我正在尝试使用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-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;
},