2015-09-25 144 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 
    } 
相关问题