嗨,我有一个简单的控制器,它返回一个简单的信息(本文中我已经简化了所有操作):
[HttpGet("[action]")]
public AppSettings GetStuff()
{
var stuff = new Stuff { Dummy = ”Hi”; };
return stuff;
}
public class Stuff
{
public string Dummy { get; set; }
}
很好,现在我从Angular服务中调用它:
getStuff(): Observable<IStuff> {
return (this.httpClient
.get<IStuff>(this.localUrl)
.pipe(
catchError(this.errorHandlerSerevice.handleError)
)) as any;
}
这是我的IStuff:
export interface IStuff {
Dummy?: string;
}
都很好... 控制台显示200和响应…
但是当我从组件中订阅getStuff()时,会得到[object object]或udentified… 我尝试了一些订阅但没有运气的上帝:
stuff: IStuff;
getStuff(){
this.stuffService.getStuff()
.subscribe(stuff => this.stuff = stuff);
}
Or:
getStuff(){
this.stuffService.getStuff()
.subscribe((data: IStuff) => this.stuff = {
Dummy: data['Dummy']
});
}
有什么主意吗?
答案 0 :(得分:3)
执行此操作时:
instance .subscribe(data => { this.stuff = data; alert(data); });
您正在尝试在警告框中打印data
。但是由于data
是JavaScript对象,因此您会看到[Object object]
,因为警报将在其上调用toString
。如果要打印实际内容,则必须stringify
。
尝试一下:
alert(JSON.stringify(data));
这应该打印出实际的答复。