这是我用angular / ionic
编写的代码this.http.get('/assets/xml/app.xml').subscribe(data => {
xml2js.parseString(data.text(), function(err, result) {
console.log('result', result);
this.posts = JSON.stringify(result);
console.log('type of', this.posts);
});
}, error => {
console.log(JSON.stringify(error.json()));
});
将结果分配给post变量时,此函数会抛出以下错误。
无法设置属性'帖子'未定义的
答案 0 :(得分:0)
我认为是因为this
引用了承诺本身,您可以使用保留this
值的arrow function expression。
请使用以下代码对您有所帮助。
this.http.get('/assets/xml/app.xml').subscribe(data => {
xml2js.parseString(data.text(), (err, result) => {
this.posts = JSON.stringify(result) || {};
});
}, error => {
console.log(JSON.stringify(error.json()));
});
请检查同一问题here。
希望这会对你有所帮助!!
答案 1 :(得分:0)
我认为这是因为this
在错误的环境中。在访问该函数之前尝试获取实例:
var self = this;
this.http.get('/assets/xml/app.xml').subscribe(data => {
xml2js.parseString(data.text(), function (err, result) {
console.log('result',result);
self.posts = JSON.stringify(result);
console.log('type of',this.posts);
});
}, error => {
console.log(JSON.stringify(error.json()));
});