Kendo ui 我应该在哪里清理剑道小部件的垃圾?

Kendo ui 我应该在哪里清理剑道小部件的垃圾?,kendo-ui,kendo-mobile,Kendo Ui,Kendo Mobile,如何/在何处正确清理剑道小部件?显然,我不想继续累积实例,但我很难决定将.destroy绑定到哪些事件。Telerik的文档中并没有太多关于这方面的内容 我正在为动态列表数据创建多个触摸小部件实例,以处理每个li元素的listview滑动,并希望在导航时清理它们 是否有一种简单的方法来清理与listview触摸/开关相关的所有小部件?谢谢。看看文档,如果你有这么多小部件的话,真的不需要清理垃圾。嗯,可能吧。你需要吗 kendo.destroy(document.body); // this w

如何/在何处正确清理剑道小部件?显然,我不想继续累积实例,但我很难决定将.destroy绑定到哪些事件。Telerik的文档中并没有太多关于这方面的内容

我正在为动态列表数据创建多个触摸小部件实例,以处理每个li元素的listview滑动,并希望在导航时清理它们


是否有一种简单的方法来清理与listview触摸/开关相关的所有小部件?谢谢。

看看文档,如果你有这么多小部件的话,真的不需要清理垃圾。嗯,可能吧。你需要吗

 kendo.destroy(document.body); // this will destroy all the widgets on page. if not select the widget and call destroy. 

文档:

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

但是,您可以在调用事件时销毁视图中的项

如果您想要一种更简单的方法来销毁特定元素下的所有小部件,那么可以使用并传入该元素

如果您在试图销毁的项目中使用任何MVVM,我建议您也先打电话

比如:

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

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

感谢您对此的澄清。我只考虑在每次导航视图时获取新数据的子列表元素上执行此操作。我不必为此担心吗?如果我查看我的KendoUI控制台小部件列表,我的按钮/开关/触摸小部件在每次加载新列表的数据时都会不断增加……这很有趣。导航到视图时,数据如何刷新?ListView是否绑定到数据源?我以为ListView小部件会清理它自己的子元素,但是。。。也许不是?嗯,你可能知道一些事情。我讨论中的一个ListView绑定到一个数据源,但在发生数据绑定事件时,我将每个li设置为一个.kendoTouch小部件来处理一些滑动。每个后续的视图导航都会产生更多的触摸实例……奇怪的是,通过剑道源代码,我似乎找不到ListView在替换元素之前清理其元素的任何地方。这让我有点担心。。但是,您可以订阅数据绑定事件并清理其中的元素。实际上,您可能只需要执行以下操作:kendo.destroy$listView.datakendoListView.items;是的,这有点令人不安。。。我喜欢你关于数据绑定活动的想法。我试试看。