在Bot Framework sdk v4 nodeJS中发送列表项。

问题描述 投票:1回答:1

所以我有这个代码。 if(channelData.message.text == "test") { await stepContext.context.sendActivity("1. Who \n\r 2. Am \n\r 3. I "); }

给我一个消息(通过FB Messenger频道),如下图所示。

message result

问题: 在bot framewwork sdk 4中有没有什么templatem方法(我用的是node JS)可以把它打印成一个干净的列表格式?(去掉2.和3.之间那个奇怪的新行)另外,如果我有 let c= ["Who", "am", "I"] 有什么办法可以通过.sendActivity以列表格式打印出来吗?谢谢!所以我有这样的代码:if(channelData.message.text == "test" { await stepContext.context.sendActivity(

node.js botframework
1个回答
0
投票

要使你的列表正确传播,只需删除新的行字符(\n)和前文与回车符之间的空格(\r),像这样。await stepContext.context.sendActivity('1. Who \r2. Am \r3. I');. 之后,它将按照你的意愿进行格式化。

至于在一个活动中迭代一个字符串数组并格式化为一个列表,下面的方法就可以了。

const msgArray = ['Who', 'Am', 'I'];
const message = MessageFactory.text('');
msgArray.forEach((val, index) => {
    if (!message.text) {
        message.text = `${ index + 1 }. ${ val }\r`;
    } else if (message.text) {
        console.log(message.text);
        message.text = message.text.concat(`${ index + 1 }. ${ val }\r`);
    }
});
return await stepContext.context.sendActivity(message);

以上两种方法对我来说都产生了相同的结果,如下图所示。

enter image description here

希望对你有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.