DialogContext class
Der Kontext für das aktuelle Dialogfeld dreht sich in Bezug auf ein bestimmtes DialogSet-.
Hinweise
Dazu gehören der Turnkontext, Informationen zum Dialogfeldsatz und der Status des Dialogstapels.
Verwenden Sie DialogSet.createContext- von Code außerhalb eines Dialogfelds, um den Dialogkontext zu erstellen. Verwenden Sie dann die Methoden des Dialogfeldkontexts, um den Verlauf von Dialogfeldern in der Gruppe zu verwalten.
Wenn Sie ein Dialogfeld implementieren, ist der Dialogfeldkontext ein Parameter, der für die verschiedenen Methoden verfügbar ist, die Sie außer Kraft setzen oder implementieren.
Zum Beispiel:
const dc = await dialogs.createContext(turnContext);
const result = await dc.continueDialog();
Konstruktoren
Dialog |
Erstellt eine neue Instanz der DialogContext Klasse. |
Dialog |
Erstellt eine neue Instanz der DialogContext Klasse. |
Eigenschaften
active |
|
child | |
context | Ruft das Kontextobjekt für die Drehung ab. |
dialog |
|
dialogs | Ruft die Dialogfelder ab, die direkt aus diesem Kontext aufgerufen werden können. |
parent | Der übergeordnete Dialogfeldkontext für diesen Dialogfeldkontext oder |
services | Ruft die Dienstauflistung ab, die kontextbezogen mit diesem Dialogfeldkontext ist. |
stack | Ruft den aktuellen Dialogstapel ab. |
state | Ruft den DialogStateManager ab, der die Ansicht aller Speicherbereiche verwaltet. |
Methoden
begin |
Startet eine Dialoginstanz und verschiebt sie auf den Dialogstapel. Erstellt eine neue Instanz des Dialogfelds und verschiebt sie auf den Stapel. |
cancel |
Bricht alle Dialogfelder im Dialogfeldstapel ab und löscht Stapel. |
continue |
Setzt die Ausführung des aktiven Dialogfelds fort, falls vorhanden, durch Übergeben dieses Dialogfeldkontexts an die Dialog.continueDialog-Methode. |
emit |
Sucht nach einem Dialogfeld mit einer bestimmten ID. |
end |
Beendet ein Dialogfeld und füllt es aus dem Stapel. Gibt ein optionales Ergebnis an das übergeordnete Element des Dialogfelds zurück. |
find |
Sucht nach einem Dialogfeld mit einer bestimmten ID. |
get |
Rufen Sie die CultureInfo in DialogContext ab. |
prompt(string, string | Partial<Activity> | Prompt |
Hilfsfunktion zum Vereinfachen der Formatierung der Optionen zum Aufrufen eines Eingabeaufforderungsdialogfelds. |
prompt(string, string | Partial<Activity> | Prompt |
Hilfsfunktion zum Vereinfachen der Formatierung der Optionen zum Aufrufen eines Eingabeaufforderungsdialogfelds. |
replace |
Beendet das aktive Dialogfeld und startet ein neues Dialogfeld an seiner Stelle. |
reprompt |
Fordert das aktive Dialogfeld an, den Benutzer erneut zur Eingabe aufzufordern. |
Details zum Konstruktor
DialogContext(DialogSet, DialogContext, DialogState)
Erstellt eine neue Instanz der DialogContext Klasse.
new DialogContext(dialogs: DialogSet, contextOrDC: DialogContext, state: DialogState)
Parameter
- dialogs
- DialogSet
Die DialogSet-, für die der Dialogfeldkontext erstellt werden soll.
- contextOrDC
- DialogContext
Das TurnContext Objekt für die aktuelle Drehung des Bots.
- state
- DialogState
Das Zustandsobjekt, das zum Lesen und Schreiben DialogState- zum Speichern verwendet werden soll.
Hinweise
Durch Das Übergeben eines DialogContext- Instanz wird der Dialogfeldkontext geklont.
DialogContext(DialogSet, TurnContext, DialogState)
Erstellt eine neue Instanz der DialogContext Klasse.
new DialogContext(dialogs: DialogSet, contextOrDC: TurnContext, state: DialogState)
Parameter
- dialogs
- DialogSet
Die DialogSet-, für die der Dialogfeldkontext erstellt werden soll.
- contextOrDC
-
TurnContext
Das TurnContext Objekt für die aktuelle Drehung des Bots.
- state
- DialogState
Das Zustandsobjekt, das zum Lesen und Schreiben DialogState- zum Speichern verwendet werden soll.
Hinweise
Durch Das Übergeben eines DialogContext- Instanz wird der Dialogfeldkontext geklont.
Details zur Eigenschaft
activeDialog
DialogInstance | undefined activeDialog
Eigenschaftswert
DialogInstance | undefined
Die Statusinformationen für das Dialogfeld oben im Dialogfeldstapel oder undefined
, wenn der Stapel leer ist.
child
DialogContext | undefined child
Eigenschaftswert
DialogContext | undefined
Dialogfeldkontext für untergeordnete Elemente, wenn das aktive Dialogfeld ein Container ist.
context
Ruft das Kontextobjekt für die Drehung ab.
context: TurnContext
Eigenschaftswert
TurnContext
dialogManager
Warnung
Diese API ist nun veraltet.
This property serves no function.
DialogManager dialogManager
Eigenschaftswert
Die aktuelle Dialog-Manager-Instanz. Diese Eigenschaft ist veraltet.
dialogs
Ruft die Dialogfelder ab, die direkt aus diesem Kontext aufgerufen werden können.
dialogs: DialogSet
Eigenschaftswert
parent
Der übergeordnete Dialogfeldkontext für diesen Dialogfeldkontext oder undefined
, wenn dieser Kontext nicht über ein übergeordnetes Element verfügt.
parent: DialogContext | undefined
Eigenschaftswert
DialogContext | undefined
Hinweise
Wenn versucht wird, ein Dialogfeld zu starten, sucht der Dialogfeldkontext in den Dialogfeldernnach dem Dialog.id. Wenn das zu startende Dialogfeld in diesem Dialogfeldkontext nicht gefunden wird, sucht es im übergeordneten Dialogfeldkontext usw.
services
Ruft die Dienstauflistung ab, die kontextbezogen mit diesem Dialogfeldkontext ist.
services: TurnContextStateCollection
Eigenschaftswert
TurnContextStateCollection
stack
state
Ruft den DialogStateManager ab, der die Ansicht aller Speicherbereiche verwaltet.
state: DialogStateManager
Eigenschaftswert
Details zur Methode
beginDialog(string, object)
Startet eine Dialoginstanz und verschiebt sie auf den Dialogstapel. Erstellt eine neue Instanz des Dialogfelds und verschiebt sie auf den Stapel.
function beginDialog(dialogId: string, options?: object): Promise<DialogTurnResult>
Parameter
- dialogId
-
string
ID des zu startenden Dialogfelds.
- options
-
object
Wahlfrei. Argumente, die beim Start in das Dialogfeld übergeben werden sollen.
Gibt zurück
Promise<DialogTurnResult>
eine Zusage, die in das Dialogdrehergebnis aufgelöst wird.
Hinweise
Wenn bereits ein aktives Dialogfeld im Stapel vorhanden ist, wird dieses Dialogfeld angehalten, bis es wieder das obere Dialogfeld im Stapel ist.
Der Status des zurückgegebenen Objekts beschreibt den Status des Dialogstapels, nachdem diese Methode abgeschlossen wurde.
Diese Methode löst eine Ausnahme aus, wenn das angeforderte Dialogfeld in diesem Dialogfeldkontext oder einem seiner Vorgänger nicht gefunden werden kann.
Zum Beispiel:
const result = await dc.beginDialog('greeting', { name: user.name });
Siehe auch
cancelAllDialogs(boolean, string, any)
Bricht alle Dialogfelder im Dialogfeldstapel ab und löscht Stapel.
function cancelAllDialogs(cancelParents?: boolean, eventName?: string, eventValue?: any): Promise<DialogTurnResult>
Parameter
- cancelParents
-
boolean
Wahlfrei. Wenn true
alle übergeordneten Dialogfelder ebenfalls abgebrochen werden.
- eventName
-
string
Wahlfrei. Der Name eines benutzerdefinierten Ereignisses, das als Dialogfelder ausgelöst werden soll, wird abgebrochen. Dies wird standardmäßig auf cancelDialog-festgelegt.
- eventValue
-
any
Wahlfrei. Wert, der zusammen mit einem benutzerdefinierten Abbruchereignis übergeben werden soll.
Gibt zurück
Promise<DialogTurnResult>
eine Zusage, die in das Dialogdrehergebnis aufgelöst wird.
Hinweise
Dadurch wird die Dialog.endDialog-Methode jedes Dialogfelds aufgerufen, bevor das Dialogfeld aus dem Stapel entfernt wird.
Wenn anfänglich Dialogfelder im Stapel vorhanden waren, wird der Status des Rückgabewerts abgebrochen; andernfalls ist es leer.
In diesem Beispiel wird ein Dialogfeldstapel gelöscht, dc
, bevor ein Dialogfeld "bookFlight" gestartet wird.
await dc.cancelAllDialogs();
return await dc.beginDialog('bookFlight');
Siehe auch
continueDialog()
Setzt die Ausführung des aktiven Dialogfelds fort, falls vorhanden, durch Übergeben dieses Dialogfeldkontexts an die Dialog.continueDialog-Methode.
function continueDialog(): Promise<DialogTurnResult>
Gibt zurück
Promise<DialogTurnResult>
eine Zusage, die in das Dialogdrehergebnis aufgelöst wird.
Hinweise
Nach Abschluss des Aufrufs können Sie die des Turnkontexts Eigenschaft überprüfen, um festzustellen, ob das Dialogfeld eine Antwort an den Benutzer gesendet hat.
Der Status des zurückgegebenen Objekts beschreibt den Status des Dialogstapels, nachdem diese Methode abgeschlossen wurde.
In der Regel würden Sie dies innerhalb des Turnhandlers Ihres Bots aufrufen.
Zum Beispiel:
const result = await dc.continueDialog();
if (result.status == DialogTurnStatus.empty && dc.context.activity.type == ActivityTypes.message) {
// Send fallback message
await dc.context.sendActivity(`I'm sorry. I didn't understand.`);
}
emitEvent(string, any, boolean, boolean)
Sucht nach einem Dialogfeld mit einer bestimmten ID.
function emitEvent(name: string, value?: any, bubble?: boolean, fromLeaf?: boolean): Promise<boolean>
Parameter
- name
-
string
Der Name des ereignisses, das ausgelöst werden soll.
- value
-
any
Wahlfrei. Wert, der zusammen mit dem Ereignis gesendet werden soll.
- bubble
-
boolean
Wahlfrei. Kennzeichnen Sie, um zu steuern, ob das Ereignis an das übergeordnete Element übergeben werden soll, wenn es nicht lokal behandelt wird. Der Standardwert ist ein Wert von true
.
- fromLeaf
-
boolean
Wahlfrei. Gibt an, ob das Ereignis von einem Blattknoten ausgegeben wird.
Gibt zurück
Promise<boolean>
true
, ob das Ereignis behandelt wurde.
Hinweise
Gibt ein benanntes Ereignis für das aktuelle Dialogfeld oder eine Person aus, die es gestartet hat, um dies zu behandeln.
endDialog(any)
Beendet ein Dialogfeld und füllt es aus dem Stapel. Gibt ein optionales Ergebnis an das übergeordnete Element des Dialogfelds zurück.
function endDialog(result?: any): Promise<DialogTurnResult>
Parameter
- result
-
any
Wahlfrei. Ein Ergebnis, das an die übergeordnete Logik übergeben werden soll. Dies kann das nächste Dialogfeld im Stapel sein, oder wenn es sich um das letzte Dialogfeld im Stapel, einen übergeordneten Dialogkontext oder den Turnhandler des Bots handelt.
Gibt zurück
Promise<DialogTurnResult>
eine Zusage, die in das Dialogdrehergebnis aufgelöst wird.
Hinweise
Das dialogfeld übergeordneten ist das nächste Dialogfeld im Dialogstapel, falls vorhanden. Diese Methode ruft die Dialog.resumeDialog-Methode des übergeordneten Elements auf und übergibt das vom endeden Dialogfeld zurückgegebene Ergebnis. Wenn kein übergeordnetes Dialogfeld vorhanden ist, endet die Drehung, und das Ergebnis steht dem Bot über das Ergebnis des zurückgegebenen Objekts Eigenschaft zur Verfügung.
Der Status des zurückgegebenen Objekts beschreibt den Status des Dialogstapels, nachdem diese Methode abgeschlossen wurde.
In der Regel würden Sie dies aus der Logik für ein bestimmtes Dialogfeld aufrufen, um wieder in den Dialogkontext zurückzukehren, den das Dialogfeld abgeschlossen hat, das Dialogfeld sollte aus dem Stapel entfernt werden, und das übergeordnete Dialogfeld sollte fortgesetzt werden.
Zum Beispiel:
return await dc.endDialog(returnValue);
Siehe auch
findDialog(string)
Sucht nach einem Dialogfeld mit einer bestimmten ID.
function findDialog(dialogId: string): Dialog | undefined
Parameter
- dialogId
-
string
ID des dialogfelds, nach dem gesucht werden soll.
Gibt zurück
Dialog | undefined
Das Dialogfeld für die angegebene ID.
Hinweise
Wenn das zu startende Dialogfeld im DialogSet diesem Dialogfeldkontext nicht gefunden wird, wird versucht, das Dialogfeld im übergeordneten Dialogfeldkontext zu finden.
Siehe auch
getLocale()
Rufen Sie die CultureInfo in DialogContext ab.
function getLocale(): string
Gibt zurück
string
eine Gebietsschemazeichenfolge.
prompt(string, string | Partial<Activity> | PromptOptions)
Hilfsfunktion zum Vereinfachen der Formatierung der Optionen zum Aufrufen eines Eingabeaufforderungsdialogfelds.
function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions): Promise<DialogTurnResult>
Parameter
- dialogId
-
string
ID des zu startenden Eingabeaufforderungsdialogfelds.
- promptOrOptions
-
string | Partial<Activity> | PromptOptions
Der Text der anfänglichen Eingabeaufforderung, um den Benutzer zu senden, die Aktivität, die als erste Eingabeaufforderung gesendet werden soll, oder das Objekt, mit dem das Eingabeaufforderungsdialogfeld formatiert werden soll.
Gibt zurück
Promise<DialogTurnResult>
Hinweise
Diese Hilfsmethode formatiert das Objekt, das als options
-Parameter verwendet werden soll, und ruft dann beginDialog- auf, um das angegebene Eingabeaufforderungsdialogfeld zu starten.
return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);
prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])
Hilfsfunktion zum Vereinfachen der Formatierung der Optionen zum Aufrufen eines Eingabeaufforderungsdialogfelds.
function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions, choices: string | Choice[]): Promise<DialogTurnResult>
Parameter
- dialogId
-
string
ID des zu startenden Eingabeaufforderungsdialogfelds.
- promptOrOptions
-
string | Partial<Activity> | PromptOptions
Der Text der ersten Eingabeaufforderung, die der Benutzer senden soll, die Aktivität, die als erste Eingabeaufforderung gesendet werden soll, oder das Objekt, mit dem das Eingabeaufforderungsdialogfeld formatiert werden soll.
- choices
-
string | Choice[]
Wahlfrei. Array von Auswahlmöglichkeiten für den Benutzer, für die Verwendung mit einem ChoicePrompt.
Gibt zurück
Promise<DialogTurnResult>
Hinweise
Diese Hilfsmethode formatiert das Objekt, das als options
-Parameter verwendet werden soll, und ruft dann beginDialog- auf, um das angegebene Eingabeaufforderungsdialogfeld zu starten.
return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);
replaceDialog(string, object)
Beendet das aktive Dialogfeld und startet ein neues Dialogfeld an seiner Stelle.
function replaceDialog(dialogId: string, options?: object): Promise<DialogTurnResult>
Parameter
- dialogId
-
string
ID des zu startenden Dialogfelds.
- options
-
object
Wahlfrei. Argumente, die beim Start in das neue Dialogfeld übergeben werden sollen.
Gibt zurück
Promise<DialogTurnResult>
eine Zusage, die in das Dialogdrehergebnis aufgelöst wird.
Hinweise
Dies ist besonders hilfreich, um eine Schleife zu erstellen oder an ein anderes Dialogfeld umzuleiten.
Der Status des zurückgegebenen Objekts beschreibt den Status des Dialogstapels, nachdem diese Methode abgeschlossen wurde.
Diese Methode ähnelt dem Beenden des aktuellen Dialogfelds und dem sofortigen Starten des neuen Dialogfelds. Das übergeordnete Dialogfeld wird jedoch weder fortgesetzt noch anderweitig benachrichtigt.
Siehe auch
repromptDialog()
Fordert das aktive Dialogfeld an, den Benutzer erneut zur Eingabe aufzufordern.
function repromptDialog(): Promise<void>
Gibt zurück
Promise<void>
Hinweise
Dadurch wird die repromptDialog Methode des aktiven Dialogfelds aufgerufen.
Zum Beispiel:
await dc.repromptDialog();