You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Actions-on-Google Node.js v2中如何程序化构建列表?

在Actions-on-Google Node.js v2中动态构建列表的方法

我明白你在Actions-on-Google Node.js v2里动态构建列表的困惑——毕竟v1的写法在v2里有不少变化,尤其是动态生成内容这块。别担心,我来给你捋清楚怎么实现:

首先,v2里不再用v1那种链式的buildList()和addItem()方法,而是通过实例化List和ListItem类来构建内容。具体步骤如下:

  1. 导入必要的类
    从actions-on-google库中引入构建列表所需的两个核心类:

    const { List, ListItem } = require('actions-on-google');
    
  2. 初始化列表实例
    先创建一个List对象,设置列表的标题:

    const listTitle = "Please select one option:";
    const dynamicList = new List({ title: listTitle });
    
  3. 动态添加列表项
    遍历你的resp_text数组,逐个创建ListItem实例并添加到列表中。这里要注意每个列表项需要唯一的key,方便后续处理用户的选择:

    // 假设resp_text是你的动态数据数组,可根据实际结构调整
    for (let r = 0; r < resp_text.length; r++) {
      // 针对不同数据格式适配:如果是字符串直接当标题,是对象则取对应字段
      const listItem = new ListItem({
        title: resp_text[r].title || resp_text[r],
        description: resp_text[r].description || '', // 可选的描述文本
        key: `option_${r}` // 唯一标识,后续处理选择时会用到
      });
      dynamicList.add(listItem);
    }
    
  4. 发起问询
    最后用conv.ask()把构建好的列表发送给用户:

    conv.ask(dynamicList);
    

小提示

  • 如果你的resp_text只是纯字符串数组,那代码可以更简洁,直接把字符串赋值给title即可。
  • key是必须且唯一的,它是你后续识别用户选择哪一项的关键,所以尽量用有意义的命名或者索引来生成。

内容的提问来源于stack exchange,提问作者Mario Menti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:59:07