2015-09-25 3 views
1

У меня есть ol.source.Vector с пользовательским многофункциональным погрузчиком. Мне нужно полностью заменить существующие функции новыми. Так что это код внутри загрузчика:Почему vectorSource.clear() вызывает перезагрузку функции?

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

Проблема заключается в том, что вызов .clear() вызывает новую загрузку функции и бесконечный цикл, как результат. load->clear->load->clear...

Это нормальное поведение? Как я могу очистить функции перед добавлением?

ответ

0

Я склонен думать, что это нормальное поведение. Чтобы избежать бесконечного цикла, вы должны позвонить vectorSource.clear() со своего loader и сообщить об этом, что vectorSource был опустошен. Затем вы измените какой-либо параметр на функцию loader.

Поскольку вы не показать код достаточно, я предлагаю что-то вроде:

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

И внутри функции загрузчика:

loader: function(){ 

    if(cleared) { 
     //some logic 
    } 
Смежные вопросы