Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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_Http_Get_Observable - Fatal编程技术网

Angular 使用httpClient返回数据时出现问题

Angular 使用httpClient返回数据时出现问题,angular,http,get,observable,Angular,Http,Get,Observable,嗨,我有一个简单的控制器,它返回一个简单的(我在这篇文章中简化了它): 很好,现在我从角度服务中称之为: getStuff(): Observable<IStuff> { return (this.httpClient .get<IStuff>(this.localUrl) .pipe( catchError(this.errorHandlerSerevice.handleError) ))

嗨,我有一个简单的控制器,它返回一个简单的(我在这篇文章中简化了它):

很好,现在我从角度服务中称之为:

getStuff(): Observable<IStuff> {
    return (this.httpClient
        .get<IStuff>(this.localUrl)
        .pipe(
            catchError(this.errorHandlerSerevice.handleError)
        )) as any;
} 
一切都好… 控制台显示200和响应

但当我从我的组件订阅getStuff()时,我得到了[object object]或ude标识… 我尝试了几次订阅,但没有成功:

stuff: IStuff;

getStuff(){
    this.stuffService.getStuff()
        .subscribe(stuff => this.stuff = stuff); 
}
Or:
getStuff(){
    this.stuffService.getStuff()
        .subscribe((data: IStuff) => this.stuff = {
            Dummy: data['Dummy']
        });
}
有什么想法吗

执行此操作时:

instance .subscribe(data => { this.stuff = data; alert(data); });
您正试图在警报框上打印
数据
。但是由于
数据
是一个JavaScript对象,因此您将看到
[Object Object]
,因为警报将对其调用
字符串
。如果您希望打印实际内容,则必须将其字符串化

试试这个:

alert(JSON.stringify(data));
这将打印实际响应。

执行此操作时:

instance .subscribe(data => { this.stuff = data; alert(data); });
您正试图在警报框上打印
数据
。但是由于
数据
是一个JavaScript对象,因此您将看到
[Object Object]
,因为警报将对其调用
字符串
。如果您希望打印实际内容,则必须将其字符串化

试试这个:

alert(JSON.stringify(data));

这将打印实际响应。

您在哪里得到的是
[object object]或已识别的
?在控制台上?您将响应记录在何处?控制台按预期返回json对象。我在订阅绑定期间得到未定义的:stuff=>this.stuff=stuff,或者在单步执行代码并将鼠标悬停在数据['Dummy']上时。例如,如果我这样做。subscribe(data=>{this.stuff=data;alert(data);});我得到[Object Object]……这是因为
警报将调用对象上的
toString()
,这将导致
[Object Object]
。如果你想要JSON格式,你需要调用
JSON.stringify
yourself你从哪里得到
[object object]或udentified
?在控制台上?您将响应记录在何处?控制台按预期返回json对象。我在订阅绑定期间得到未定义的:stuff=>this.stuff=stuff,或者在单步执行代码并将鼠标悬停在数据['Dummy']上时。例如,如果我这样做。subscribe(data=>{this.stuff=data;alert(data);});我得到[Object Object]……这是因为
警报将调用对象上的
toString()
,这将导致
[Object Object]
。如果需要JSON格式,您需要自己调用
JSON.stringify