我正在使用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
,从另一个菜单开始。
答案 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
)