2017-08-16 65 views
1

我正在使用REST API來獲取Polymer 2.0.2項目中的一組對象。響應是這樣的:將新的JSON對象追加到Polymer中的數組中

[ 
    {"name":"John","city":"Mumbai"}, 
    {"name":"Ron","city":"New York"}, 
    {"name":"Harry","city":"Lisbon"} 
] 

當接收到響應,設置我的屬性命名content如下:

_contentAjaxResponseHandler(event) {   
    this.set('content', event.detail.response);  
} 

這工作只要REST API被調用一次。 現在,我想在用戶滾動到頁面底部並將其添加到現有數據時獲取下一批。

所以,我的問題是,什麼是最新的方式追加新的結果到現有的content數組?換句話說,聚合物中2個陣列合併的最佳方式是什麼?

直到現在,我能想到的唯一的辦法就是循環在新的結果,並呼籲push method.Something這樣的:

_contentAjaxResponseHandler(event) { 
    let newResponse = event.detail.response; 
    newResponse.forEach(function(newObj){ 
     this.push('content',newObj); 
    }); 
} 
+0

您是否正在嘗試實施像「iron-scroller」這樣的功能? https://www.webcomponents.org/element/PolymerElements/iron-scroll-threshold – Ofisora

+0

嗨感謝您的回覆。我試過這個組件。此組件已損壞,無法正常工作。其Github頁面上存在未解決的問題,特別是以下問題:https://github.com/PolymerElements/iron-scroll-threshold/issues/23。由於這個組件不起作用,我開始編寫我自己的滾動處理程序 –

+0

您是否嘗試過使用'concat'函數? https://www.w3schools.com/jsreF/jsref_concat_array.asp – Ofisora

回答

1

下面的代碼爲我工作:

_contentAjaxResponseHandler(event) { 
    let newResponse = event.detail.response; 
    this.set('content',this.content.concat(newResponse)); 
}