【问题标题】:How to get HTTP JSON-response into HTML (Ionic2, Angular2, TypeScript, PHP, JSON)?如何将 HTTP JSON 响应转换为 HTML(Ionic2、Angular2、TypeScript、PHP、JSON)?
【发布时间】:2017-09-09 07:52:35
【问题描述】:

我目前正在开发我的第一个 Ionic 2 应用程序,但我还不是很喜欢 typescript..

我想在构造函数中调用 authenticate() 方法,然后再调用

  1. 将整个 JSON 响应放入 textarea 和/或
  2. 在我的 HTML 中访问 json 响应的用户名和密码值

打字稿:

export class WelcomePage {
    public data: string;
    username: string;
    password: string;

    constructor(public navCtrl: NavController, public http: Http) {
        this.authenticate();
    }    

    authenticate() {
            var creds = { username: 'user1', password: 'pw1' };

            var headers = new Headers();
            headers.append('Content-Type', 'application/x-www-form-urlencoded');

            this.http.post('http://www.xyz.api.php', creds, {
                headers: headers
            })
                .map(res => res.json())

                .subscribe(
                data => this.data,
                err => this.logError(err),
                () => console.log('Completed')
                );
        }
}

我已经从 API 得到响应:

 { "Person":[ {"Username":"user1","Password":"pw1"} ] }

HTML:

<textarea>here: {{data}}</textarea>

--> 文本区域为空

【问题讨论】:

  • 数据是json对象,所以你需要像这样循环对象
  • 可惜还是空的,没有出现textareas
  • 在输出屏幕中你得到 [Object Object]
  • 根本没有输出

标签: html json api angular typescript


【解决方案1】:

您可能想要提取数组内的对象,该对象位于 Person 内:

.map(res => res.json().Person[0]) // extract object

此外,您需要将数据分配给this.data,如下所示:

.subscribe(
   data => this.data = data // here!
   ....

然后使用(在此处与safe navigation operator ? 一起使用。)

{{data?.Username}}{{data?.Password}}

【讨论】:

  • 感谢您的建议,调整了代码,但 textarea 仍然为空
  • 你试过{{data | json}}你真的有data中的值吗?
  • 现在可以使用您最后的更改,只需要重新启动 ionic :) 非常感谢,您让我开心!
  • 不客气,乐于助人!祝你有美好的一天,快乐的编码:)
猜你喜欢
  • 1970-01-01
  • 2017-09-13
  • 2020-04-09
  • 1970-01-01
  • 1970-01-01
  • 2016-04-13
  • 2023-04-01
  • 2022-01-22
  • 1970-01-01
相关资源
最近更新 更多