Angularjs在剑道网格上绑定自定义剑道事件的标准方法

Angularjs在剑道网格上绑定自定义剑道事件的标准方法,angularjs,javascript-events,kendo-grid,angular-kendo,Angularjs,Javascript Events,Kendo Grid,Angular Kendo,我想知道是否有一个angularjs绑定剑道自定义事件的最佳实践 我有一个带有列菜单的网格,可以隐藏或显示列 无论何时选中/取消选中隐藏/显示列,都会触发剑道columnHide或columnShow事件 在我的指令中,我有以下代码来捕获该事件。我想知道这是否是绑定这些事件的最佳方式,以及是否存在任何潜在的内存问题(例如,是否有必要解除绑定这些事件): 假设剑道网格代码在网格被删除时删除了侦听器,您应该不会有问题。如果剑道格网在其自身之后没有清理干净,您可以执行以下操作: scope.$on(

我想知道是否有一个angularjs绑定剑道自定义事件的最佳实践

我有一个带有列菜单的网格,可以隐藏或显示列

无论何时选中/取消选中隐藏/显示列,都会触发剑道columnHidecolumnShow事件

在我的指令中,我有以下代码来捕获该事件。我想知道这是否是绑定这些事件的最佳方式,以及是否存在任何潜在的内存问题(例如,是否有必要解除绑定这些事件):


假设剑道网格代码在网格被删除时删除了侦听器,您应该不会有问题。如果剑道格网在其自身之后没有清理干净,您可以执行以下操作:

scope.$on('$destroy', function() {
  kendoGrid.destroyOrWhateverItsCalled();
});
当您的指令从视图中删除时,$destroy事件由Angular触发。

从我在这里和其他网站上所做的(无可否认)研究来看,似乎没有标准的、推荐的angularjs绑定自定义剑道事件(以及一般的自定义事件)的方法。在上面的问题中,我使用jQuery的bind()完成这项工作的方式与stackoverflow上的其他人完成这项工作的方式相同,因此我坚持这一点

为供参考,这里也提出了类似的问题:

(“我认为目前还没有AngularJS方法来进行此类事件绑定。据我所知,为所有缺失的事件添加本机支持正在进行中,但尚未发布任何稳定版本。”)[通过缺失事件,他指的是尚未自定义指令的事件,例如ng click、ng blur]

也有一些信息,但他使用jQuery on()而不是bind(),本质上是一样的,但on()更重要 最新(见-): 元素上(“myEvent”,…)


作为旁注,为了创建自定义事件,您可以使用$on()来定义自己并发出(或广播)然后处理回调。看看这个例子

看起来他们有一个destroy()方法,你应该调用它:谢谢我团队中的另一个开发人员已经在指令中实现了这个方法,所以看起来我被涵盖了!
scope.$on('$destroy', function() {
  kendoGrid.destroyOrWhateverItsCalled();
});