【发布时间】:2020-05-07 04:36:22
【问题描述】:
async feed_first(stepContext)
{
let company_card = MessageFactory.attachment(
CardFactory.adaptiveCard(testfeedback)
);
return await stepContext.prompt("textPrompt", {
prompt: company_card
});
}
async feed_second(stepContext) {
console.log("enter feedback second");
console.log(stepContext.context.activity.value);
}
{
"type": "AdaptiveCard",
"version": "1.0",
"body": [
{
"type": "Container",
"items": [
{
"type": "Input.ChoiceSet",
"placeholder": "Placeholder text",
"choices": [
{
"title": " 1",
"value": " 1"
},
{
"title": " 2",
"value": " 2"
}
],
"style": "expanded",
"id": "cho"
},
{
"type": "ActionSet",
"actions": [
{
"type": "Action.Submit",
"title": "Submit"
}
]
}
]
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
}
所以对于这段代码,卡会显示出来,但在机器人模拟器上,当点击提交按钮时,什么也没有发生。控制台显示“正在运行带有消息活动的对话框”并再次提示同一张卡。机器人不会流到瀑布对话框的第二步(feed_second)。我想要代码做的是在控制台上显示“第二个输入反馈”,然后在控制台上显示带有 id“cho”的 stepContext.context.activity.value agiain 的选定选项。旁注 - 我在声明 WaterfallDialog 时添加了“feed_first”和“feed_second”,所以这不是问题
【问题讨论】:
-
您能否更详细地描述实际和预期的行为?您是说系统提示您,但是当您输入文本时它会重新提示?还是根本不让您响应提示?您能否分享您的机器人的更大上下文以及如何调用此对话框?
-
(如果你想让我看到你的回复,你需要@提及我。)就像比尔说的那样,你没有提供足够的信息来回答你的问题。但是,看起来您可能会从提交操作中获取基于值的消息活动,这意味着活动的文本将为空,因此无法满足文本提示。如果是这种情况,您可以在调用
continueDialog之前将值序列化到文本属性中。如果您提供您正在使用的自适应卡,将会有所帮助。 stackoverflow.com/help/how-to-ask -
@billoverton。嗨,我已经添加了卡片并解释了我希望它如何工作。提前致谢。
-
@KyleDelaney。嗨,我已经添加了卡片并解释了我希望代码如何工作。提前致谢
-
我的回答可以接受吗?
标签: javascript node.js botframework adaptive-cards