我想根据卡片类型将 css 类名添加到相应的 html 元素中。
我已经通过设置 [ AdaptiveCard.customCssSelector] 1属性做到了这一点。例如,您只需要添加这一行builder.card.customCssSelector = "ac-thumbnail";,生成的 html-block 将包含.class="ac-container ac-thumbnail"
但是,我想独立于 Botframework-Webchat 更新并将此逻辑放入中间件中。根据BotFramework-Webchat 文档,可以添加attachmentMiddleware到renderWebChat函数并操作 html 元素。
事实上,我得到了活动和附件,但我无法操作 html 块或添加 css 选择器。
这是我的中间件代码:
export const cardCssSelector = ({ dispatch }) => next => action => {
if (action.type === 'DIRECT_LINE/INCOMING_ACTIVITY') {
const { activity } = action.payload;
for (var index in activity.attachments) {
const card = activity.attachments[index].content;
if(card.tap && card.tap.value){
card.customCssSelector = 'tap';
}
}
}
console.log(action);
return next(action);
};
当然这不起作用,因为附件没有 customCssSelector 属性。
