我应该在哪里做我的kendo小部件垃圾清理?

时间:2014-09-18 16:05:36

标签: kendo-ui kendo-mobile

我如何/在哪里正确清理kendo小部件?我不想明显地堆叠实例,但是我无法确定将.destroy()绑定到哪些事件。 Telerik的文档并没有真正谈论这个问题。

我正在创建触摸小部件的多个实例(用于动态列表数据)来处理每个li元素的listview滑动,我想在导航时清理它们。

是否有一种简单的方法可以清理与listview相关的所有小部件(触摸/切换)?感谢。

2 个答案:

答案 0 :(得分:1)

在kendo Mobile中,第一次导航到视图时,会初始化它并将元素添加到DOM中。但是,当您离开视图时,它将完全保留在内存中并附加到DOM,但会被导航到的视图隐藏。这意味着通常不需要销毁您的小部件和事件处理程序。

但是,您可以在调用view.hide事件时销毁视图中的项目。

如果您想要一种更简单的方法来销毁特定元素下的所有小部件,您可以使用kendo.destroy()并传入元素。

如果您在要破坏的项目中使用任何MVVM,我建议您先调用kendo.unbind()

类似的东西:

var $listView = $("#listView:);
kendo.unbind($listView);
kendo.destroy($listView);

请注意,此代码会破坏listview小部件以及每个li元素中的任何小部件。

答案 1 :(得分:-2)

看一下文档,真的不需要垃圾清理,如果你有这么多的小部件,也许可以。做

 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#destroy-kendo-ui-widgets