如何使用工作簿中的组
使用工作簿中的组项,可对工作簿中的一组步骤进行逻辑分组。
工作簿中的组能够在多个方面起作用:
- 布局
- 如果你想要对项进行纵向组织,可为全部堆积在一起的项创建一个组,并将该组的样式设置为百分比宽度,而不是设置各个项的百分比宽度。
- 可见性
- 如果你想要将多个项一起隐藏/显示,可以设置整个项组的可见性,而不是设置每个项的可见性设置。 这对于使用选项卡的模板非常有用,因为可以使用组作为选项卡的内容,并可以根据所选选项卡设置的参数来隐藏/显示整个组。
- 性能
- 如果你有一个很大的模板,其中包含许多部分或选项卡,则可以将每个部分转换为其自身的子模板,并使用组来加载顶级模板中的所有子模板。 在用户将这些组设为可见之前,子模板的内容不会加载或运行。 详细了解如何将一个大模板拆分为许多模板。
使用组
若要将组添加到工作簿,请依次选择“添加”、“添加组”。
下面是处于读取模式的组的屏幕截图,其中包含两个项:文本项和查询项。
编辑工作簿时,可以看到这两个项实际上位于组项中:
在上面的屏幕截图中,组处于编辑模式,并且图中显示它包含两个项(虚线区域内)。 每个步骤都可以处于编辑或读取模式且彼此独立。 例如,查询步骤处于读取模式,而文本步骤处于编辑模式。
Scoping
当前,组被视为工作簿中的新范围。 在组中创建的所有参数仅在该组中可见。 这同样适用于合并,你只能查看组内部或父级别的数据。
组类型
工作簿组项允许将一组项添加到工作簿。 工作簿的作者可以指定组的类型。 有两种类型的组:
- 可编辑
- 工作簿中的组允许添加、删除或编辑该组中的项内容。 此类型通常用于布局和可见性目的。
- 来自模板
- 工作簿中的组按工作簿 ID 加载另一工作簿的内容。 在运行时,将会加载该工作簿的内容并将其合并到工作簿中。 在编辑模式下,你无法修改组的任何内容,因为在下一次加载项时,这些内容就会从模板中再次加载。 从模板加载组时,请使用现有工作簿的完整 Azure 资源 ID。
加载类型
可通过几种不同的方式加载组的内容。 工作簿作者需要指定何时以及如何加载组的内容。
延迟(默认类型)
仅当项可见时,组才会加载。 这样,组就可由选项卡项使用了。 如果从未选择该选项卡,则组永远不可见,因此也不会加载内容。
对于从模板创建的组,在组变为可见之前,不会检索该模板的内容,且不会创建组中的项。 检索内容时,用户将看到整个组的进度旋转图标。
显式
在此模式下,会显示一个按钮来指示组的位置,并且在用户显式单击此按钮加载内容之前,不会检索或创建任何内容。 在内容的计算非常耗费资源或者内容极少被使用的情况下,此类型很有用。 作者可以指定要在按钮上显示的文本。
下面是显式加载设置的屏幕截图,其中显示了一个已配置的“加载更多”按钮。
在加载到工作簿中之前的组:
在加载到工作簿中之后的组:
始终
在此模式下,加载工作簿后,始终会立即加载并创建组的内容。 当组仅用于布局目的(其中的内容始终可见)时,往往会使用此类型。
在组中使用模板
当某个组配置为从模板加载时,默认会以延迟方式加载该内容,仅当该组可见时才加载。
将某个模板加载到组中时,工作簿会尝试将所要加载的模板中声明的所有参数与组中的现有参数合并。 工作簿中存在的所有同名参数将从所要加载的模板中合并出去。 如果参数步骤中的所有参数均已合并出去,则整个参数步骤将会消失。
示例 1:所有参数具有相同的名称
考虑一个在顶部包含两个参数的模板。
TimeRange
- 时间范围参数。Filter
- 文本参数。
然后,组项将加载另一个具有自己的两个参数和一个文本步骤的模板,其中的参数名称与前一个模板的参数名称相同:
将第二个模板加载到组中时,重复的参数将合并出去。由于所有参数都已合并出去,因此内部参数步骤也会合并出去,导致组仅包含文本步骤。
示例 2:一个参数具有相同的名称
考虑一个在顶部包含两个参数的组模板。
TimeRange
- 时间范围参数。FilterB
- 一个文本参数,请注意它不是顶级模板中所包含的Filter
。
加载组项的模板时,会将 TimeRange
参数从该组中合并出去。 然后,该工作簿将包含带有 TimeRange
和 Filter
的初始参数步骤,而组的参数步骤仅包含 FilterB
如果加载的模板包含 TimeRange
和 Filter
(而不是 FilterB
),则生成的工作簿将包含一个参数步骤,以及一个仅包含文本步骤的组。
如何将一个大模板拆分为许多模板
若要提高性能,最好将一个大模板分解为多个较小的模板,这些较小的模板能够以延迟方式或者按照用户的要求加载某些内容。 由于顶级模板可以大幅减小,因此可以提高初始加载速度。
将某个模板拆分为多个部分时,实际上需要将该模板拆分为多个全部都单独工作的模板(子模板)。 因此,如果顶级模板包含其他步骤使用的 TimeRange
参数,则子模板还需要包含一个参数步骤,以用于定义一个具有确切名称的参数。 这样就可以让子模板独立工作,并使其可按组加载到较大的模板内。
若要将一个较大的模板转换为多个子模板:
在工作簿顶部附近的共享参数后面创建一个新的空组。 此新组最终将成为子模板。
创建共享参数步骤的副本,然后使用“移入组中”功能将副本移入到步骤 1 中创建的组。 此参数步骤允许子模板独立于外部模板工作,在加载到外部模板内时会合并出去。
注意
从技术上来讲,如果你永远不打算单独显示子模板,则子模板就不需要将这些参数合并出去。 不过,如果你以后需要单独显示子模板,那么就会难以对其进行编辑或调试。
将工作簿中需要放入到子模板的每个项移入到步骤 1 中创建的组。
如果在步骤 3 中移动的单个步骤具有条件可见性,则这将成为外部组(例如选项卡中使用的组)的可见性。 将这些步骤从组内的项中删除,并将该可见性设置添加到组本身。 在此处请保存,以免丢失所做的更改,并且/或者导出并保存 JSON 内容的副本。
如果你希望从模板加载该组,可以使用该组中的“编辑”工具栏按钮。 这只会在新窗口中将该组的内容作为工作簿打开。 然后,可以保存此内容(如果适用)并关闭此工作簿视图(不要关闭浏览器,只是关闭该视图以返回到前面正在编辑的工作簿)。
然后,可将组步骤更改为从模板加载,并将模板 ID 字段设置为在步骤 5 中创建的工作簿/模板。 若要使用工作簿 ID,源必须是共享工作簿的完整 Azure 资源 ID。 按“加载”,随即会从该子模板加载此组的内容,而不是加载这个外部工作簿中保存的内容。