如何在多行中询问用户的选择?

时间:2017-06-04 14:25:10

标签: botframework

我要求用户从多个选项中进行选择,如下所示

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);

但选项以单行显示给用户。如何使用多行向用户显示如下选项?

  1. 选项一
  2. 选项二
  3. 选项三

3 个答案:

答案 0 :(得分:3)

Node.js的

根据您提供的代码,我假设您使用的是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#

对于那些使用C#构建机器人的人,您只需指定PromptStylePromptStyle.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