Skip to content

快捷键操作如何传递自定义参数

库提供了很多命令,比如插入子节点的INSERT_CHILD_NODE等,这些命令大多可以接收一定参数,比如在插入节点时我想指定初始文本和节点uid,那么可以这样调用:

js
mindMap.execCommand('INSERT_CHILD_NODE', true, [], {
    text: '初始文本',
    uid: 'xxx'
})

但是同时库内部也默认注册了很多快捷键,比如插入下级节点的Tab快捷键,很遗憾,目前快捷键操作无法让你传入自定义的参数,那么该怎么办呢,可以这样处理,首先确定你要给什么快捷键传入参数,比如Tab,那么首先可以调用如下方法删除库默认注册的快捷键:

js
const keyName = 'Tab'
mindMap.keyCommand.removeShortcut(keyName)

然后再重新注册即可:

js
mindMap.keyCommand.addShortcut(keyName, () => {
    mindMap.execCommand('INSERT_CHILD_NODE', true, [], {
        text: '初始文本',
        uid: 'xxx'
    })
})

库内部默认注册的快捷键对应的命令一览:

快捷键命令
Control+zBACK
Control+yFORWARD
TabINSERT_CHILD_NODE
InsertINSERT_CHILD_NODE
EnterINSERT_NODE
Shift+TabINSERT_PARENT_NODE
Control+gADD_GENERALIZATION
Del或BackspaceREMOVE_NODE
Shift+BackspaceREMOVE_CURRENT_NODE
Control+aSELECT_ALL
Control+lRESET_LAYOUT
Control+UpUP_NODE
Control+DownDOWN_NODE

MIT License.