节点菜单动态菜单项

时间:2018-02-13 22:13:23

标签: javascript node.js

我正在使用node-menu 1.3.0,我想基于某些条件获得动态菜单项,如下所示:

menu.addDelimiter('-', 40, '')

if(condition){
   .addItem('Conditional Item 1', conditional_function)
  } else {
    .addItem('Conditional Item 2', conditional_function_2)
 }

.customHeader(Header)
.disableDefaultHeader()
.customPrompt(function() {
    process.stdout.write("\nEnter selection:\n");
})
.disableDefaultPrompt()

.start();

我甚至不确定如何接近它。有什么想法吗?

更新: 实际上问题有点复杂,我有一个会根据用户输入改变的事件,如下所示:

isListening()
  .then(value -> {
    menu
      .additem('Item 1', item1)
      .additem('Item 2', item2)
      .start();
   })
.catch(error => {
       menu
      .additem('Item 3', item3)
      .start();
});

function item3会将isListening()更改为true,从另一个菜单开始。

1 个答案:

答案 0 :(得分:0)

在addItem外写入条件并使用解析条件后的值

   var conditionVal, conditionFunc

    if(condition){
      conditionVal = 'Conditional Item 1';
      conditionFunc = conditional_function
      } else {
       conditionVal = 'Conditional Item 2';
       conditionFunc = conditional_function_2
     }

    menu.addDelimiter('-', 40, '')
    .addItem(
      conditionVal,
      conditionFunc
    )