在淘汰赛中路由事件?

安德里亚斯·齐塔(Andreas Zita)

是否有任何可用的调整来使Knockout支持路由事件?

在我的垂直情况下,我想在视图的root-vm中处理context-menu-events,并让任何嵌套的vm设置如下的context-menu触发器:

event: { contextmenu: OnContextMenu }

如果OnContextMenu未在当前虚拟机上定义-handler,则应将事件路由到其父虚拟机,依此类推,直到找到处理程序。

目前,我必须这样做(这很容易出错)

event: { contextmenu: $parents[3].OnContextMenu }

还是有其他方法可以做到这一点?

安德里亚斯·齐塔(Andreas Zita)

找到了一个简单的解决方案。我正在使用内置的DOM事件冒泡,然后在根元素上捕获事件并使用ko.dataFor获取虚拟机,如下所示:

self.OnContextMenu = function (vm, e) { // the root-vm
  vm = ko.dataFor(e.originalEvent.target);
  if (vm && vm.contextMenu) {
    self.openContextMenu(vm.contextMenu);
  }
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章