【问题标题】:Adaptive Cards: Visibility of element depending on value of a ChoiceSet自适应卡片:元素的可见性取决于 ChoiceSet 的值
【发布时间】:2020-08-05 04:18:37
【问题描述】:

我正在尝试根据 ChoiceSet(单选按钮)中选择的值在自适应卡上显示 TextBlock 元素。而且我没有让它正常工作。

ChoiceSet 没有集成ActionSet,因此我无法在选择时调用ToggleVisibility 操作。然后我尝试使用selectAction 属性,但Input.ChoiceSetInput.Choice 都不支持此属性。 最后一种方法是在要切换的元素上使用"$when" 属性并将其绑定到ChoiceSet 的值。根据它的值,应该显示或隐藏元素。但我没有让它工作,我试过了 "$when": "{damagepart=2}" 但似乎只适用于某种数据绑定?!

我无法在 decumentation 或adaptivecards.io 的样本中找到合适的示例...

有没有人有关于如何解决这个任务的例子或一些提示?

【问题讨论】:

  • 这张卡是机器人还是什么?
  • 是的,这张卡片将由机器人发送
  • 去哪个频道?
  • 网络聊天/模拟器
  • 这在模拟器中是不可能的,在网络聊天中会很困难。您将需要extend 网络聊天的自适应卡片渲染器和自定义代码。您能否发布您的网络聊天客户端代码,以便我可以根据您是否使用 Node 或 CDN 以及您是否使用 React 来回答我的问题?

标签: adaptive-cards


【解决方案1】:

虽然理论上可以使用自适应卡片的可扩展性功能在网络聊天中完成此操作,但您也可能不在自适应卡片路线图中:https://portal.productboard.com/adaptivecards/1-adaptive-cards-features/c/25-client-side-update-card-upon-input-changes-or-button-presses

【讨论】:

    【解决方案2】:

    我做了这个例子,可能对你有用。

    包含文本框和操作超链接的列部分将根据条件或变量的值隐藏和显示。

    卡片有效载荷编辑器

    {
        "type": "AdaptiveCard",
        "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
        "version": "1.5",
        "body": [
            {
                "type": "ColumnSet",
                "columns": [
                    {
                        "type": "Column",
                        "width": "stretch",
                        "items": [
                            {
                                "type": "TextBlock",
                                "text": "This line will visible when the condition meet:",
                                "wrap": true
                            },
                            {
                                "type": "ActionSet",
                                "actions": [
                                    {
                                        "type": "Action.OpenUrl",
                                        "title": "Any button you want to show"
                                    }
                                ]
                            }
                        ]
                    }
                ],
                "$when": "${$root.MatchVariableValue == \"yes\"}"
            }
        ]
    }
    
    

    在数据编辑器上使用以下示例查看该部分如何根据您的输入/值显示和隐藏。

    {"MatchVariableValue":"yes"}
    

    或使用

    "$when": "${$root.MatchVariableValue}"
    

    如果你的数据很简单

    {"MatchVariableValue":true}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-19
      • 1970-01-01
      • 1970-01-01
      • 2020-06-15
      • 2020-05-07
      • 2022-06-10
      • 2019-10-03
      相关资源
      最近更新 更多