How execute other prompt when prompt previous is true on Yeoman?
12,198
Yeoman uses a thing called Inquirer.js for the prompt system. Here's an example of how you can ask Question 2 if Question 1 was true:
inquirer.prompt([{
name: 'movie',
type: 'confirm',
message: 'Have you seen a movie lately?'
}, {
when: function (response) {
return response.movie;
},
name: 'good-or-not',
message: 'Sweet! Was it any good?'
}], function (response) {});
From the Inquirer.js documentation:
when: (Function) Receive the current user answers hash and should return true or false depending on wheter or not this question should be asked.
Related videos on Youtube
Comments
-
Fuechter almost 2 years
How execute prompt2 when prompt1 is true on Yeoman as shown below?
var prompts = [ {name: 'prompt1', message: 'Ask 1?'}, {name: 'prompt2', message: 'Ask 2?'} ];
-
Cameron over 7 yearsHow would you add on a question if it was true though?
-
Our_Benefactors about 7 years@cameronroe If the user answers 'no' to the question 'Have you seen a movie lately?' then the next message will not display. To add another question after 'Sweet! Was it any good?', add another when: function(response){} with the same syntax. You can also change the type for subsequent questions.
-
Aakash over 5 years@Our_Benefactors, the
first argument
in thewhen()
method is theanswers-hash
. So if you don't have the required answer for the question, you canreturn false;
in themethod function
. For example :when: function(ans){ if(ans.prompt1 === false) {return false;} else {return true;}}
. Good Luck... -
Karma Blackshaw about 4 yearsIs there a way to pass the params in when to the prompt? I generated a list in the when and I need to pass that list as the choices for the current promt.