DialogContainer class
一組對話框的容器。
- Extends
-
Dialog<O>
建構函式
Dialog |
建立 Dialog 類別的新實例。 |
屬性
dialogs | 容器對話框集。 |
id | 對話框的唯一標識碼。 設定對話框的唯一標識符。 |
telemetry |
設定遙測用戶端,並將它套用至所有子對話。 新增至元件的未來對話框也會繼承此用戶端。 取得目前的遙測用戶端。 |
繼承的屬性
End |
取得預設回合結束結果。 |
方法
create |
建立容器使用中子系的內部對話內容。 |
find |
尋找先前新增至容器的子對話。 |
on |
使用 |
繼承的方法
begin |
在衍生類別中覆寫時,啟動對話框。 |
configure(Record<string, unknown>) | 用於設定物件的 Fluent 方法。 |
continue |
在衍生類別中覆寫時,繼續對話。 |
end |
在衍生類別中覆寫時,會在對話結束之前執行清除。 |
get |
|
get |
編碼字串,用來協助在重新部署時偵測 Bot 變更。 |
reprompt |
在衍生類別中覆寫時,將使用者重新命名為輸入。 |
resume |
在衍生類別中覆寫時,在堆疊上對話框完成之後繼續對話。 |
建構函式詳細資料
DialogContainer(string)
屬性詳細資料
dialogs
id
對話框的唯一標識碼。 設定對話框的唯一標識符。
string id
屬性值
string
對話框的識別碼。
備註
如果未指定,系統就會自動產生此專案。
telemetryClient
設定遙測用戶端,並將它套用至所有子對話。 新增至元件的未來對話框也會繼承此用戶端。 取得目前的遙測用戶端。
BotTelemetryClient telemetryClient
屬性值
BotTelemetryClient
要用於記錄的 BotTelemetryClient。
繼承的屬性詳細資料
EndOfTurn
取得預設回合結束結果。
static EndOfTurn: DialogTurnResult
屬性值
備註
此結果表示對話(或對話內的邏輯步驟)已完成目前回合的處理,仍在使用中,而且正在等候更多輸入。
方法詳細資料
createChildContext(DialogContext)
建立容器使用中子系的內部對話內容。
function createChildContext(dc: DialogContext): DialogContext | undefined
參數
父代對話框內容。
傳回
DialogContext | undefined
作用中子系的新對話框內容,如果沒有作用中的子系,則為 undefined
。
findDialog(string)
尋找先前新增至容器的子對話。
function findDialog(dialogId: string): Dialog | undefined
參數
- dialogId
-
string
要查閱之對話框的標識碼。
傳回
Dialog | undefined
如果找到對話框,則為 ;否則為 null。
onDialogEvent(DialogContext, DialogEvent)
使用 DialogContext.emitEvent()
引發事件時,由目前對話框或目前對話框啟動的對話框呼叫。
function onDialogEvent(dc: DialogContext, e: DialogEvent): Promise<boolean>
參數
目前交談回合的對話內容。
要引發的事件。
傳回
Promise<boolean>
True 是表示 如果事件是由目前的對話框處理,且反升應該停止。
繼承的方法的詳細資料
beginDialog(DialogContext, O)
在衍生類別中覆寫時,啟動對話框。
function beginDialog(dc: DialogContext, options?: O): Promise<DialogTurnResult>
參數
目前對話框回合的內容。
- options
-
O
自選。 對話框啟動時要使用的自變數。
傳回
Promise<DialogTurnResult>
備註
衍生對話必須覆寫這個方法。
DialogContext 在建立這個對話方塊的新 DialogInstance、將它推送至對話堆棧,然後啟動對話框時,會呼叫此方法。
代表單一回合交談的對話框應該在結束此方法之前等候 dialogContext.endDialog
另請參閱
configure(Record<string, unknown>)
用於設定物件的 Fluent 方法。
function configure(config: Record<string, unknown>): this
參數
- config
-
Record<string, unknown>
要套用的組態設定。
傳回
this
作業完成之後 可設定。
continueDialog(DialogContext)
在衍生類別中覆寫時,繼續對話。
function continueDialog(dc: DialogContext): Promise<DialogTurnResult>
參數
目前對話框回合的內容。
傳回
Promise<DialogTurnResult>
解決對話框回合結果的承諾。
備註
支援多回合交談的衍生對話應該覆寫此方法。 根據預設,這個方法會發出對話框已完成並傳回的訊號。
DialogContext 在繼續對話時呼叫此方法。
若要向對話框內容發出訊號,表示此對話框已完成,請在結束此方法之前,先等候 dialogContext.endDialog
另請參閱
endDialog(TurnContext, DialogInstance, DialogReason)
在衍生類別中覆寫時,會在對話結束之前執行清除。
function endDialog(_context: TurnContext, _instance: DialogInstance, _reason: DialogReason): Promise<void>
參數
- _context
-
TurnContext
回合的內容物件。
- _instance
- DialogInstance
此對話框的目前狀態資訊。
- _reason
- DialogReason
對話框結束的原因。
傳回
Promise<void>
備註
需要在結束之前執行記錄或清除的衍生對話應該覆寫此方法。 根據預設,這個方法沒有任何作用。
DialogContext 目前對話框結束時呼叫這個方法。
另請參閱
getConverter(string)
function getConverter(_property: string): Converter | ConverterFactory
參數
- _property
-
string
條件式選取器組態的索引鍵。
傳回
選取器組態的轉換器。
getVersion()
編碼字串,用來協助在重新部署時偵測 Bot 變更。
function getVersion(): string
傳回
string
唯一的字串,只有在對話框以應該重新啟動對話框的方式變更時才會變更。
備註
這預設會傳回對話框 標識子,但可以覆寫以提供更精確的變更偵測邏輯。 堆疊上具有其版本變更的任何對話框都會引發 versionChanged
事件。 如果 Bot 未處理此事件,則會擲回錯誤,導致 Bot 錯誤處理程式邏輯正在執行。
傳回空字串將會一起停用元件的版本追蹤。
repromptDialog(TurnContext, DialogInstance)
在衍生類別中覆寫時,將使用者重新命名為輸入。
function repromptDialog(_context: TurnContext, _instance: DialogInstance): Promise<void>
參數
- _context
-
TurnContext
回合的內容物件。
- _instance
- DialogInstance
此對話框的目前狀態資訊。
傳回
Promise<void>
備註
支持驗證和重新提示邏輯的衍生對話應該覆寫此方法。 根據預設,這個方法沒有任何作用。
DialogContext 當目前的對話框應該重新要求使用者輸入時,就會呼叫此方法。 這個方法會針對提示對話框實作。
另請參閱
resumeDialog(DialogContext, DialogReason, any)
在衍生類別中覆寫時,在堆疊上對話框完成之後繼續對話。
function resumeDialog(dc: DialogContext, reason: DialogReason, result?: any): Promise<DialogTurnResult>
參數
目前對話框回合的內容。
- reason
- DialogReason
對話繼續的原因。 這通常會 DialogReason.endCalled
- result
-
any
自選。 結束之對話框的傳回值,如果有的話。
傳回
Promise<DialogTurnResult>
解決對話框回合結果的承諾。
備註
支援多回合交談的衍生對話應該覆寫此方法。 根據預設,這個方法會發出對話框已完成並傳回的訊號。
DialogContext 在繼續對話時呼叫此方法。 如果堆疊上的上一個對話框傳回值,該值會位於 result
參數中。
若要啟動 子 對話框,請使用 DialogContext.beginDialog 或 DialogContext.prompt;不過,此對話框不一定是啟動子對話的對話框。
若要向對話框內容發出訊號,表示此對話框已完成,請在結束此方法之前,先等候 dialogContext.endDialog
另請參閱