Кендо UI RequestEnd никогда не вызывается
Попытка добавить спиннер (kendo.ui.progress), чтобы показать выполняемые операции crud, создать стартовый спиннер в событии сохранения и завершить в привязке к данным, но для удаления (уничтожить) запустить в событии удаления, но нет способа определить, когда уничтожение завершено. Существует событие requestEnd, но оно никогда не вызывается - возможно, оно не поддерживается в более старой версии kendo ui.
Есть еще один способ - определить ajax-функцию внутри операции уничтожения, например destroy:function(options){$. Ajax...}, а также при успешном или неудачном обратном вызове ajax stop spinner, но я не хочу этого делать.
Могу ли я узнать, когда завершена операция уничтожения, кроме двух упомянутых выше решений?
2 ответа
С помощью requestStart
, sync
, requestEnd
показывать и прятать прядильщик не разумно. Таким образом, вы должны написать код для отображения и скрытия счетчика в каждом источнике данных. что произойдет, если код показа / скрытия изменился?
Лучшая идея - определить глобальный обработчик, который будет показывать счетчик после первого запроса и скрывать счетчик после последнего ответа. Global Ajax Event Handlers
лучший в этом сценарии.
.ajaxStart()
: Register a handler to be called when the first Ajax request begins.
.ajaxStop()
: Register a handler to be called when all Ajax requests have completed.
пример:
$( document ).ajaxStart(function() {
kendo.ui.progress($("#app"), true);
});
//----------------------------------------------
$( document ).ajaxStop(function() {
kendo.ui.progress($("#app"), false);
});
Вы можете использовать sync
событие. Он запускается после того, как источник данных сохраняет изменения элемента данных. http://docs.telerik.com/kendo-ui/api/framework/datasource
dataSource : {
transport : {
read: {
url:...
}
},
sync: function () {
kendo.ui.progress($("#loading"), false);
}
}