Microsoft Graph 工具包中的分类选取器组件

分类选取器是一个组件,它可以查询 Microsoft 图形 API的分类,并使用术语呈现下拉列表控件,从而允许基于指定的术语集id或指定术语集id和指定术语的组合来选择单个术语id

组件检索指定术语集或术语下存在的第一级术语。 如果仅提供术语集 ID,则返回该术语集下的第一级术语。 如果同时提供了术语集 ID 和术语 ID,则返回指定术语下的第一级术语。

注意 此功能目前支持来自术语库 的单一术语 选择。

示例

以下示例演示了如何使用 mgt-taxonomy-picker 组件从术语集中选择术语。

属性和属性

可以使用多个属性来更改组件的行为。 所需的属性为 term-set-id

属性 属性 说明 类型
term-set-id termsetId 强制性。 要从中检索一级术语的术语的 ID。 String
term-id termId 可选。 要从中检索第一级术语的术语的 ID。 如果未提供,函数将检索 由 term-set-id指定的术语集下的第一级术语。
请注意 ,此术语必须是 ID term-set-id为 的术语集下的术语之一。
String
site-id siteId 可选。 存在术语集的网站 ID。 如果未指定,则假定术语集位于租户级别。 String
version version 可选。 发出 GET 请求时要使用的 API 版本。 默认值为“beta”。 String
占 位 符 占 位 符 可选。 在组合框中使用的占位符。 默认值为 Select a term string
区域设置 区域设置 可选。 需要显示的术语的区域设置。 仅当术语具有不同语言的多个标签时,这才有用。 String
default-selected-term-id defaultSelectedTermId 可选。 默认情况下应选择的术语的 ID。 String
position position 可选。 下拉列表的位置。 可以是“above”或“below”。 默认值为 below String
禁用 禁用 可选。 设置是否禁用分类选取器。 禁用后,用户无法搜索或选择术语。 不适用
已启用缓存 cacheEnabled 可选。 设置后,它指示将缓存来自资源的响应。 默认值为“false”。 Boolean
cache-invalidation-period cacheInvalidationPeriod 可选。 () 毫秒数 与 cacheEnabled结合使用时,缓存达到其失效期之前的延迟将由此值修改。 默认值为 0 ,并将使用默认无效期限。 数字

以下示例将组件的行为更改为提取指定术语集的第一级子术语。

<mgt-taxonomy-picker
  term-set-id="138a652e-7f23-46f6-b480-13da2308c235"
></mgt-taxonomy-picker>

以下示例更改组件的行为,以提取指定术语的第一级子术语。

<mgt-taxonomy-picker
  term-set-id="138a652e-7f23-46f6-b480-13da2308c235"
  term-id="a56caeb7-3b7d-4d22-93a9-0232e12905f6"
></mgt-taxonomy-picker>

以下示例更改 组件的行为,以提取指定术语的第一级子术语的法语标签。

<mgt-taxonomy-picker
  term-set-id="138a652e-7f23-46f6-b480-13da2308c235"
  term-id="a56caeb7-3b7d-4d22-93a9-0232e12905f6"
  locale="fr-FR"
></mgt-taxonomy-picker>

以下示例更改组件的行为,以提取指定网站中存在的指定术语集的第一级子术语。

<mgt-taxonomy-picker
  term-set-id="7889007a-fb0e-449f-b629-dedf63ae53de"
  site-id="contoso.sharepoint.com,0962bcef-48f1-4460-baa8-b7286dcb249b,ba412b3c-951a-4322-ac37-0fe6307b5987"
></mgt-taxonomy-picker>

以下示例将组件的行为更改为提取指定术语集的第一级子术语,并设置默认选择的指定术语。

<mgt-taxonomy-picker
  term-set-id="138a652e-7f23-46f6-b480-13da2308c235"
  default-selected-term-id="7ab1d163-f691-4676-88b3-c2d8921b73eb"
></mgt-taxonomy-picker>

CSS 自定义属性

组件 mgt-taxonomy-picker 定义以下 CSS 自定义属性,用于提供替代。

<mgt-taxonomy-picker
  class="taxonomy-picker"
  term-set-id="138a652e-7f23-46f6-b480-13da2308c235"
></mgt-taxonomy-picker>
.taxonomy-picker {
  --taxonomy-picker-background-color: grey;
  --taxonomy-picker-list-max-height: 200px;
  --taxonomy-picker-background-color: black;
  --taxonomy-picker-placeholder-color: white;
  
}

若要了解详细信息,请参阅 设置组件样式

方法

方法 说明
refresh (force?:boolean) 调用 方法以刷新数据。 默认情况下,仅当数据发生更改时,UI 才会更新。 传递 true 以强制更新组件。

事件

事件 何时发出 自定义数据 可取消 泡沫 使用自定义模板
selectionChanged 当用户对下拉列表中的选择进行更改时触发。 将属于该类型的所选术语 TermStore.Term

有关处理事件的详细信息,请参阅 事件

模板

组件 mgt-taxonomy-picker 支持多个 模板 ,可用于定义外观。 若要指定模板,请在组件中包含元素 <template> ,并将 设置为 data-type 以下值之一。

数据类型 数据上下文 说明
error 来自 Microsoft Graph 的错误。 如果发出请求时出错,则使用此模板。
加载 不适用 发出请求时使用此模板。
no-data 不适用 请求未返回任何数据时使用此模板。

模板用法示例

<mgt-taxonomy-picker term-set-id="138a652e-7f23-46f6-b480-13da2308c235">
  <div>Loading template</div>
    <template data-type="loading">
      Loading
    </template>
    <template data-type="no-data">
      <div>No data</div>
    </template>
    <template data-type="error">
      <div>Error</div>
    </template>
  </div>
</mgt-taxonomy-picker>

Microsoft Graph 权限

此组件使用以下 Microsoft Graph API 和权限。 对于每个调用的 API,用户必须至少具有列出的权限之一。

配置 权限 API
默认 TermStore.Read.All、TermStore.ReadWrite.All /termStore/sets/{setId}/children
默认 TermStore.Read.All、TermStore.ReadWrite.All /termStore/sets/{setId}/terms/{termId}/children
site-id 已设置 TermStore.Read.All、TermStore.ReadWrite.All /sites/{site-id}/termStore/sets/{set-id}/children
site-id 已设置 TermStore.Read.All、TermStore.ReadWrite.All /sites/{site-id}/termStore/sets/{set-id}/terms/{term-id}/children

有关权限的详细信息,请参阅 Microsoft Graph 权限参考

身份验证

控件使用 身份验证文档中 所述的全局身份验证提供程序来提取所需的数据。

缓存

若要启用和配置缓存,请使用 cacheEnabledcacheInvalidationPeriod 属性。 默认情况下, mgt-taxonomy-picker 组件不缓存任何响应。

对象存储 缓存的数据 备注
response 从 Microsoft Graph 检索到的术语的完整响应。

有关详细信息,请参阅 缓存

本地化

控件公开以下可本地化的变量。 有关如何设置本地化的详细信息,请参阅 本地化组件

字符串名称 默认值
comboboxPlaceholder Select a term
loadingMessage Loading...
noTermsFound No terms found
termsetIdRequired The termsetId property or termset-id attribute is required