为什么角度抛出错误无法设置属性'帖子'未定义的

时间:2017-12-15 04:43:59

标签: javascript angular ionic-framework

这是我用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变量时,此函数会抛出以下错误。

  

无法设置属性'帖子'未定义的

2 个答案:

答案 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()));
    });