如何以编程方式进入模式?

时间:2016-01-22 01:16:10

标签: vorpal.js

我希望有一个普通的.command()处理程序来执行一些异步调用,然后决定它是输出内容还是将用户置于模式中。这可能吗?

如果是,我是如何基于异步调用设置分隔符的?我可以动态为此模式设置自定义.action()功能吗?

或者,是否可以将上下文传递给此动态创建的模式?

1 个答案:

答案 0 :(得分:2)

您可以使用完全不同的命令集创建Vorpal的第二个(或多个)实例。这些也可以在飞行中声明。

通过在新实例上调用vorpal.show(),这将"分离"在旧的Vorpal的UI上,在#34; mode"的持续时间内,用户看来你得到了一组全新的命令,分隔符等。

var modeA = new Vorpal().delimiter('fooland:');
var modeB = new Vorpal().delimiter('barland:');

modeA.command('foo'); // ...
modeB.command('bar'); // ...

// Only foo is present as a command.
modeA.show();
setTimeout(function(){
  // Now bar is present as a command instead.
  modeB.show();
}, 5000);