Skip to main content

迭代器

该节点可以将 数组 中的数据动态插入可视化组件。

迭代器节点从CIDE 数组 中获取数据,并为 数组 中的每个项目生成一个现有的可视化组件。然后,与可视化组件关联的 对象 或 [记录] 可以用来填充组件的数据。

可以在[指南]中找到更多详细信息。

输入

属性描述
模板类型此输入用于启用或禁用动态模板。输入可以是:

显式的: 所有项目将使用相同的 组件。
动态的: 使用代码选择要为每个项目创建的 组件。在这种情况下,您需要设置 脚本 输入。
脚本当模板类型设置为 动态 或选择 显式 模板类型组件 后,此输入可用。编写脚本以将输入映射到每个项目的组件或选择要为每个项目创建的组件(见下文)。
组件仅当 模板类型 设置为 显式 时可用。选择您项目中将用作模板的组件,以便为项目数组中的每个对象动态创建组件实例。
项目一个用于动态创建组件的 对象 或 [记录] 数组。
信号描述
刷新通过向此输入发送信号,将删除并重新创建 迭代器 中的所有项目。

脚本

在这里,您可以放置一个脚本,执行以下两种操作之一。脚本可以: a) 将 项目数组中 的对象的属性映射到 迭代器 节点创建的模板组件实例的组件输入。仅当 模板类型 设置为 显式 时可用。(见下文的 映射输入 ),或者 b) 选择要在提供给 迭代器 节点的项目数组中的每个项目上使用的模板组件。仅当 模板类型 设置为 动态 时(且为必填项)可用。(见下文的 动态模板类型)。

映射输入

map({
Label: 'Full Name',
State: () => object.get('Married') === 'Yes',
})

默认情况下,映射只是直接从对象属性到组件输入的映射。但是,您可以使用脚本来更改该映射。在上面的示例中,将传入对象的“Full Name”属性映射到“Label”组件输入。您还可以使用脚本通过提供函数来进行类型转换。例如,当使用具有不同数据模型和属性的各种数据数组时,这可能非常有用。

动态模板类型

通过将 模板类型 设置为 动态,您可以使用脚本确定在对象 数组 中的每个项目上应使用哪个组件。如果不同的项目应具有不同的视觉表示和与之关联的功能,则这可能非常有用。 您必须提供一个脚本来确定要使用的模板。该脚本将为提供给 迭代器 节点的项目数组中的每个对象调用一次。脚本具有一个输入变量_item_,它是当前项目。这可以用于从对象获取属性。脚本应将变量 component 设置为用作项目模板的组件的路径。注意,这是一个字符串,以“/”开头,表示CIDE项目中的组件路径。

let basePath = '/#My Sheet/ListItems'
if (item.type === 'header') {
component = basePath + '/HeaderItem'
} else {
component = basePath + '/StandardItem'
}

在上面的示例中,脚本检查每个对象的“type”属性,并根据值选择组件“#My Sheet/ListItems/HeaderItem”或“#My Sheet/ListItems/StandardItem”。

输出

混合描述
模板输出为每个 模板 组件的信号输出创建一个输出。
属性描述
项目ID每当向任何组件输出信号发送信号以反映触发信号的相关 对象 或 [记录] 的 Id 时,此输出将更新。
输出项目此组包含除信号以外的组件模板的组件输出。当由其中一个组件实例触发信号时,输出将与相应项目的_Item Id_一起重新播放。这可以用于在对象和变量中存储特定于组件的输出。
来自列表项的输出值。
信号描述
项目信号此组包含来自循 环器节 点的组件输出信号的组件。当任何组件实例触发输出信号时, 迭代器 节点将与相应的 项目Id 一起中继这些信号。
来自列表项的输出信号。