2015-09-25 50 views
1

我有ol.source.Vector自定義功能加載器。我需要用新的功能完全替代現有的功能。因此,這是裏面的代碼加載器:爲什麼vectorSource.clear()會導致要素重新加載?

vectorSource.clear(); 
vectorSource.addFeatures(features); 

的問題是,調用.clear()導致新功能加載和無限循環的結果。 load->clear->load->clear...

這是正常行爲嗎?如何在添加前清除功能?

回答

0

我傾向於認爲這是正常行爲。爲避免無限循環,您應該從loader以外呼叫vectorSource.clear(),並讓它知道vectorSource已被清空。然後您將更改loader函數的某些參數。

既然你沒有表現出足夠的代碼,我會建議是這樣的:

var cleared = false; 
vectorSource.on('clear', function(evt){ 
    cleared = true; 
}); 

而且裏面裝載函數:

loader: function(){ 

    if(cleared) { 
     //some logic 
    } 
相關問題