Angular httpClient返回数据时出现问题

时间:2018-11-08 15:50:12

标签: angular http get observable

嗨,我有一个简单的控制器,它返回一个简单的信息(本文中我已经简化了所有操作):

  [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']
        });
}

有什么主意吗?

1 个答案:

答案 0 :(得分:3)

执行此操作时:

instance .subscribe(data => { this.stuff = data; alert(data); });

您正在尝试在警告框中打印data。但是由于data是JavaScript对象,因此您会看到[Object object],因为警报将在其上调用toString。如果要打印实际内容,则必须stringify

尝试一下:

alert(JSON.stringify(data));

这应该打印出实际的答复。