我是 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页面
如何解决此问题?
答案 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
表达式不会初始化您的变量,它只是设置变量的类型。初始化意味着为其分配了值。