无法将数据从Web服务设置为可变离子框架

时间:2017-12-17 10:06:53

标签: angular typescript ionic-framework

我是 Ionic 的新手。我尝试将数据从Web服务设置为我的变量,但它返回

  

"无法设置属性' xxx'未定义"

但我已将变量初始化为any

这是我的代码

import {RedditsService} from '../../app/services/reddits.service'; 
import xmljson from 'xmljson'; 

@Component({ 
  selector: 'reddits', 
  templateUrl: 'reddits.html' 
}) 
export class RedditsPage { 
  xxx:any;
  constructor(public navCtrl: NavController, private redditsService:RedditsService) { 

  } 

  ngOnInit(){ 
 this.getPosts(); 
  } 

  getPosts(){ 


 this.redditsService.getPosts().subscribe(response => {xmljson.to_json(response._body, function(error, data){ 
   var jsonData = data.ArrayOfMdReqOnProcess.mdReqOnProcess; 
   this.xxx = jsonData; 
   console.log(jsonData[1]) 
  }); 
 }); 
  } 
}

将数据设置为数据类型var时可以,但我不想这样,因为我想发送参数" xxx"到HTML页面

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

在传递到xmljson.to_json函数的函数中,this未引用 Component 。您可以使用简单的箭头函数更改函数声明,以保留this参数以引用组件上下文

getPosts() { 

 this.redditsService.getPosts()
                    .subscribe(response => {
                           xmljson.to_json(response._body, (error, data) => { 
                              var jsonData = data.ArrayOfMdReqOnProcess.mdReqOnProcess; 
                              this.xxx = jsonData; 
                              console.log(jsonData[1]);
                           }); 
                     }); 
} 

你也说过

  

我已将init变量添加到任何

xxx:any表达式不会初始化您的变量,它只是设置变量的类型。初始化意味着为其分配了值。