【发布时间】:2019-07-26 03:30:22
【问题描述】:
我正在尝试为我的 Azure 聊天机器人创建一个自适应卡片轮播。
我有一个对象列表,我想为这个列表中的每个项目创建一个新的自适应卡片。
这里是我发送卡片轮播的地方:
await step.context.sendActivity({
text: "I've found the following job positions:",
attachments: this.createCards(positions),
attachmentLayout: AttachmentLayoutTypes.Carousel
});
这里是createCards:
const JobCard = require('../../resources/jobCard.json');
createCards(positions) {
let cards = [];
positions.forEach(function(position) {
let cardJson = JobCard;
cardJson.body[0].columns[0].items[0].text = position.name;
cardJson.body[0].columns[0].items[1].text = position.activities;
let adaptativeCard = CardFactory.adaptiveCard(cardJson);
cards.push(adaptativeCard)
})
return cards;}
问题是:所有卡片都显示相同的内容。显示的卡片数量与positions的数量相对应,但所有卡片都显示positions的第一个position的position.name和position.activities。
问题:我尝试动态创建卡片的方式有什么问题?我怎样才能成功地做到这一点?
感觉我在这里遗漏了一些非常简单的东西,但我找不到导致问题的原因。
【问题讨论】: