我要求用户从多个选项中进行选择,如下所示
var reportData = {
"Report A Traffic Violation": {
intent: 'report_a_traffic_violation'
},
"Report a Lost Property": {
intent: 'report_a_traffic_violation'
},
"Describe Incident": {
intent: '/describeIncident'
}
};
builder.Prompts.choice(session, "please select from options", reportData);
但选项以单行显示给用户。如何使用多行向用户显示如下选项?
答案 0 :(得分:3)
根据您提供的代码,我假设您使用的是node.js
您可以在此settings
函数code中查看Microsoft提供的Contoso-Flowers示例,并使用列表here进行预览。
以下是他们处理清单的方式:
var SettingChoice = {
Email: 'edit_email',
Phone: 'edit_phone',
Addresses: 'edit_addresses',
Cancel: 'cancel'
};
var lib = new builder.Library('settings');
lib.dialog('/', [
// Display options
function (session) {
builder.Prompts.choice(session, 'settings_intro', [
session.gettext(SettingChoice.Email),
session.gettext(SettingChoice.Phone),
session.gettext(SettingChoice.Addresses),
session.gettext(SettingChoice.Cancel)
]);
},
您是否尝试使用此处的数组?
对于那些使用C#构建机器人的人,您只需指定PromptStyle
到PromptStyle.PerLine
答案 1 :(得分:0)
对于js:虽然' \ n'是通用换行符。 对于c#SDK:Environment.NewLine。
答案 2 :(得分:0)
尝试添加listStyle参数:
builder.Prompts.choice(
session,
"please select from options",
reportData,
{listStyle: builder.ListStyle.list}
);
有关Bot Framework文档中列表样式的更多信息:https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-dialog-prompt