javascript - 如何使用 Watson Conversation Dialog 创建表单构建器

标签 javascript jquery ibm-cloud watson-conversation watson

我正在处理 Watson Conversation 项目。 我导入了以下 Watson 项目,并通过我的对话对其进行了配置: https://github.com/watson-developer-cloud/car-dashboard

我希望聊天机器人向用户显示一个复选框,其中包含用户必须选择的 7 个选项。每次单击一个选项都会链接到对话框的一部分。 目前,我已将此文本插入对话节点

"Select:<br>
<select id='select' on select: 'select()'>
<option value='01' selected> Product 1 </option>
<option value='02'>Product 2</option>
</select>"	

而我有以下情况

image

尝试按照这篇文章(How use Select Option in Watson Conversation)写的复制index.js文件里面的代码,我的项目中没有。

问题有两个: 1)你怎么能有一个复选框而不是一个下拉菜单? 2)在项目的github页面上看到的hierarchy的哪个文件中,输入建议的代码?

最佳答案

正如@Arlemi 指出的那样,您可以只使用链接中提到的复选框代码。

但是!您尝试做的事情的问题是,如果您尝试为其他系统渲染,它将成为维护的噩梦。

对话代码也有 10MB 的限制,因此添加无关代码会降低该限制。

最好把代码分离出来,让应用层来创建代码。

例如使用W3学校链接代码:

<input type="checkbox" name="vehicle1" value="Bike"> I have a bike<br>
<input type="checkbox" name="vehicle2" value="Car"> I have a car<br>
<input type="checkbox" name="vehicle3" value="Boat" checked> I have a boat<br>

您将拥有如下所示的对话节点。

{  "context": { 
  "vehicle_options": {
    "type": "checkbox",
      "options": [
        { "name": "vehicle1", "value": "Bike", "text": "I have a bike" },
        { "name": "vehicle2", "value": "Car", "text": "I have a car" },
        { "name": "vehicle3", "value": "Boat", "text": "I have a boat", "checked": true },
      ] 
  }
    },
  "output": {
      "text": {
        "values": [ "Select your Vehicles: <! vehicle_options !>" ]
        }
    }
}

然后你的应用层寻找<! !>并使用此 block 内的值来确定要读取的上下文对象。它将使用 type值来确定如何渲染,options用作该渲染的一部分。

这意味着您的应用层可以创建 HTML 或任何其他语言(例如 Swift)。这也意味着您可以在别处控制样式,而不必更改对话响应。它还可以减少噪音,使其更易于维护/阅读。

关于javascript - 如何使用 Watson Conversation Dialog 创建表单构建器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46787117/

相关文章:

javascript - 无法将多个视频插入播放列表 - YouTube API v3

jquery - jQuery .not 选择器可以与 .delegate 一起使用吗?

java - 当我使用 Liberty 将 Java 应用程序部署到 IBM Bluemix 时,构建包将其重命名为 myapp.war。如何保留原来的war文件名?

docker - IBM-Bluemix:IBM Containers报告的图像已压缩-比本地Docker引擎小

java - 从 Javascript 调用 Java (Birt)

javascript - AngularJS:通过单击按钮迭代数组

javascript - 如何在禁用的 asp.net 下拉列表中添加警报?

c# - 验证 Ajax 加载的表单 - 返回验证摘要

apache-kafka - 如何清除消息中心主题?

javascript - React JS 和 Sass-loader 与 webpack 发生错误