我正在尝试从另一个对话框js文件进行begindialog。我出错了。
<b>[onTurnError]: Error: DialogContext.beginDialog(): A dialog with an id of 'FollowUpDialog' wasn't found. </b>
这是对话框结构-
我正在尝试在OrderStatus对话框中包括FollowUp对话框,类似地,我还有其他要在其中开始跟进或Orderstatus对话框的对话框。尝试重用对话框。
一种使用我们如何将文件包含在botjs amd中的方法来做adddialog,就像我可以将其包含在otherfile中一样。但这是多余的工作。我正在努力避免这种情况。有人可以告诉我一种更好的方法来将对话框包含在不同的对话框中。
代码:
下面的代码来自greeting.js 如果您看到我正在执行begindialog的行。
返回等待步骤。beginDialog(ORDER_STATUS_DIALOG); 返回等待步骤。beginDialog(ENTITLEMENT_CHECK_DIALOG);
是错误。我试图包括该对话框,该对话框是不同JS文件的一部分。
async step => {
if (step.context.activity.channelId == 'directline') {
const buttons = [{
type: ActionTypes.ImBack,
title: 'Repair Order Status',
value: symbolicString.ZEB_GR_STR_013
}, {
type: ActionTypes.ImBack,
title: 'Entitlement Check',
value: symbolicString.ZEB_GR_STR_014
}];
const card = CardFactory.heroCard('', undefined, buttons, {
text: symbolicString.ZEB_GR_STR_015
});
const reply = {type: ActivityTypes.Message};
reply.attachments = [card];
return await step.context.sendActivity(reply);
} else {
return await step.prompt(MENU_PROMPT, symbolicString.ZEB_GR_STR_028);
}
},
async step => {
if (step.context.activity.channelId != 'directline'){
console.log("step greeting dialog next step");
console.log(step);
console.log(step.context.activity);
if (step.context.activity.text == '1'){
return await step.beginDialog(ORDER_STATUS_DIALOG);
}else if (step.context.activity.text == '2'){
return await step.beginDialog(ENTITLEMENT_CHECK_DIALOG);
}
}
return await step.endDialog();
}
]));