2016-04-10 10 views
4

In einem Dialog möchte ich den Benutzer nach seiner E-Mail-Adresse fragen. Wenn der Benutzer irrtümlich eine ungültige E-Mail-Adresse eingegeben hat, möchte ich in der Lage sein, in eine "Loop" -Situation zurückzukehren und ihn nach seiner E-Mail zu fragen, bis er eine gültige E-Mail-Adresse eingibt. Was ist der beste Weg, dies zu erreichen? Ich konnte keine Möglichkeit finden, einen Schritt in einem Wasserfall Dialog zurückzugehen.Können Sie in einem Wasserfalldialog einen Schritt zurückgehen, wenn der Benutzer falsche Daten eingegeben hat? #botframework

Antwort

3

Sie können anrufen, next({ resumed: builder.ResumeReason.back }), aber es gibt tatsächlich eine bessere Möglichkeit zu tun, was Sie versuchen zu tun.

In der neuesten v0.8.0-Version der Bibliothek habe ich eine neue DialogAction.validatedPrompt() Aktion hinzugefügt, mit der Sie eine neue Eingabeaufforderung mit einer benutzerdefinierten Validierungsroutine erstellen können. Damit können Sie Ihren '/ emailPrompt' Dialog anstelle von Prompts.text() aufrufen und Sie müssen nicht rückwärts gehen. Sehen Sie sich das Beispiel basics-validedPrompt an, um es in Aktion zu sehen.

+0

Wie in der Libray-Version 3.8, ist 'validedPrompt()' veraltet und Sie sollten 'session.replaceDialog ('dialogName', {reprompt: true});' stattdessen verwenden. Überprüfen Sie die [docs] (https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-dialog-replace) als Referenz. – Srichakradhar

Verwandte Themen