是否有任何可用的调整来使Knockout支持路由事件?
在我的垂直情况下,我想在视图的root-vm中处理context-menu-events,并让任何嵌套的vm设置如下的context-menu触发器:
event: { contextmenu: OnContextMenu }
如果OnContextMenu
未在当前虚拟机上定义-handler,则应将事件路由到其父虚拟机,依此类推,直到找到处理程序。
目前,我必须这样做(这很容易出错)
event: { contextmenu: $parents[3].OnContextMenu }
还是有其他方法可以做到这一点?
找到了一个简单的解决方案。我正在使用内置的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] 删除。
我来说两句