Где я должен сделать мойку очистки виджета кендо?
Как / где я могу правильно очистить виджеты кендо? Я не хочу продолжать накапливать инстансы, но мне трудно решить, какие события связать .destroy()
к. В документации Telerik об этом особо не говорится.
Я создаю несколько экземпляров сенсорных виджетов (для данных динамического списка), чтобы обрабатывать пролистывания списка для каждого li
элемент, и я хочу очистить их, когда я нахожусь.
Есть ли простой способ просто очистить все виджеты, связанные со списком (касание / переключатели)? Благодарю.
2 ответа
В kendo Mobile при первом обращении к вашему представлению оно инициализируется и элементы добавляются в DOM. Тем не менее, когда вы перемещаетесь от вида, он полностью остается в памяти и подключается к DOM, но становится скрытым при просмотре. Это означает, что обычно не требуется уничтожать ваши виджеты и обработчики событий.
Однако вы можете уничтожить элементы в вашем представлении, когда вызывается событие view.hide.
Если вам нужен более простой способ уничтожить все виджеты под конкретным элементом, вы можете использовать kendo.destroy() и передать элемент.
Если вы используете какой-либо MVVM в элементах, которые пытаетесь уничтожить, я бы рекомендовал сначала вызвать kendo.unbind().
Что-то вроде:
var $listView = $("#listView:);
kendo.unbind($listView);
kendo.destroy($listView);
Обратите внимание, что этот код будет уничтожать виджет списка, а также любые виджеты в каждом li
элемент.
Взгляните на документацию, там действительно нет необходимости в очистке мусора, если у вас так много виджетов, хм, может быть.
kendo.destroy(document.body); // this will destroy all the widgets on page. if not select the widget and call destroy.
Документация: http://docs.telerik.com/kendo-ui/framework/widgets/destroy