Atom编辑器:在菜单中为命令添加参数

时间:2015-09-08 20:15:34

标签: atom-editor

我通过循环动态添加多个菜单项并添加如下:

{label: entry.getBaseName(), command: 'mymodule:openproj'}

这有效,并调用先前定义的函数:

atom.commands.add 'atom-workspace',
  'mymodule:openproj': (event) ->
    console.log event

但我需要做的是将参数传递给函数,因为我希望我的命令根据单击的菜单项执行不同的操作。我以为我会把它称为:

{label: entry.getBaseName(), command: 'mymodule:openproj('+entry.getBaseName()+')'}

但是,这并没有调用该函数。

1 个答案:

答案 0 :(得分:0)

MenuManager::add的输入定义命令属性是一个字符串,这是对CommandRegistry::add commandName 属性的引用,只是一个名称而不是JavaScript表达式。

但是,使用DOM节点(菜单项)作为this引用调用附加到命令的回调函数。因此,如果您对多个菜单项使用单个 commandName ,则可以使用它来识别单击了哪个菜单项并采取相应措施。