数组中的push方法无效 - Angular 2

时间:2016-05-15 23:12:37

标签: arrays angularjs api angular promise

我在最近4个小时内坚持使用这段代码,无法弄清楚问题是什么。它是用打字稿写的。 newsa 数组将填充我使用api提取的数据。但是,在我正确地声明了所有需求之后,它显示了像找不到推送属性这样的错误,例如公共前缀和所有。没有任何错误,但没有任何东西被推动。怎么了。 如果你回答它会很有帮助。

public newsa: Array<any> = [];
fetchNews() {
    console.log("Fetch NEws has started");
    var that = this;
    let googlenewsUrl:string;
    let finalUrl: string;

    this.countries.forEach(function(i) {

        googlenewsUrl = "https://news.google.com/news?q=" + i.name.replace(/\s+/g, '') + "&output=rss";
        finalUrl = '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=50&callback=JSONP_CALLBACK&q=' + encodeURIComponent(googlenewsUrl);
        that.jsonp.get(finalUrl).toPromise().then(news => that.newsa.push(news)).catch(that.handleError);           
    });

}

1 个答案:

答案 0 :(得分:0)

而不是

 function(i)

使用

 (i) =>

保留this

的范围