2017-04-13 74 views
1

我目前的工作对我的第一离子2的应用程序,但我还没有很成打字稿..如何将HTTP JSON响应转换为HTML(Ionic2,Angular2,TypeScript,PHP,JSON)?

我想调用authenticate()方法在我的构造函数和事后

  1. GET整个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> 

- >文本区域为空

+0

的数据是JSON对象所以你需要循环这样的对象

Vignesh

+0

不幸的是它仍然是空的,没有textareas出现 – dzitrus

+0

在输出屏幕你开始g [对象对象] – Vignesh

回答

0

你会想提取里面的对象阵列,里面是Person

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

此外,你需要将数据分配到this.data像这样:(连同safe navigation operator?这里)

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

然后使用

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

+0

感谢您的建议,调整了代码,但textarea保持为空 – dzitrus

+0

您尝试过'{{data | json}}'你实际上在'data'中有值吗? – Alex

+0

现在适用于您最后的更改,只需重启离子:)非常感谢,您让我的一天! – dzitrus