【问题标题】:How to get the right Element out of a REST call如何从 REST 调用中获取正确的元素
【发布时间】:2018-11-03 10:05:15
【问题描述】:

我尝试调用我的 REST API,它返回一个包含 session_token 的 JSON 对象。 我只需要那个 session_token,但我如何获得呢?

this.http.post(this.tokenURL, this.tokenCall).subscribe(res => {
  this.token = res.session_token;
});

这是我的尝试,但 Angular 不会编译,因为他不知道 session_token 在编译时是否存在。我如何才能从中获取 session_token ?如果我在令牌本身中声明它,它也不会起作用。

感谢您的帮助

【问题讨论】:

  • 在构造函数或 ngOnInıt 中,你在哪里调用这个 post 请求?
  • 一个名为“apiCall()”的自己的函数,它在 ngOnInit 中被调用,是的
  • 那么确切的问题是什么?抱歉不明白这一点:“但是 Angular 不会编译,因为他不知道 session_token 在编译时是否存在”
  • 需要先调用res.json()获取对象。

标签: angular rest api angular5 angular6


【解决方案1】:

你可以试试这个(使用来自 HttpClientModule 的 HttpClient)

this.http.post<{session_token}>(this.tokenURL, this.tokenCall)
 .subscribe(res => { 
  this.token = res.session_token; 
 });

【讨论】:

    【解决方案2】:

    我为任何好奇的人找到了一种解决方法。 我声明了一个“any”类型的对象,并为其分配响应数据。

    let response:any = {};
    this.http.post(this.tokenURL, this.tokenCall).subscribe(res => {
      if(res.hasOwnProperty("session_token")){
        response = res;
        this.token = response.session_token;
      }
    

    这可能不是一个好的风格,但我发现的唯一解决方法。

    【讨论】:

      猜你喜欢
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      • 2021-06-13
      • 1970-01-01
      相关资源
      最近更新 更多