子属性和容器键
子属性
组件配置中的多个配置属性均包含子属性。子属性是指包含在其他属性中的属性,通常仅与父属性的某些特定配置相关。有时子属性是可选的,而有时子属性却是必需的。
以下是一个示例:“项列表”组件可包含一个搜索框;要启用此搜索框,需将 enableSearch 配置属性设置为 true。启用此搜索框后,可在此搜索框中输入提示文本。为设置提示文本,enableSearch 提供了一个可用子属性 searchHintText,可用来接受字符串输入。在这种情况下,仅当 enableSearch 设置为 true 时,子属性 searchHintText 才相关。此子属性是可选的;如未进行任何设置,则不会在此搜索框中显示任何提示文本。
下面是 enableSearch 属性的示例代码,可供参考:
{
"enableSearch":{
"additionalData":{
"itemListSearchDefinition":{
"searchHintText":{
"value":"Search the list"
}
}
},
"value":true
}
另一方面,某些子属性是相关的,而与父属性的配置无关。例如,要设置用于筛选“项列表”的默认字段,可以使用 defaultSortFields 配置属性。无论此属性的配置为何,其中都可以包含子属性 defaultSortDirection,这样便可将默认排序方向设置为升序或降序。
复杂子属性
有时子属性会变得更为复杂。它们的深度可达到两层以上,也可针对属性的不同配置对它们进行更改。
下面是一个更为复杂的示例:通过将 layout 特性设置为 horizontalvertical,即可将“属性”组件配置为纵向或横向显示属性。
layout 设置为 horizontal 时,其中会包含两个必需的子属性 maxHeightmaxWidth。这些子属性中的每个子属性都会接受整数输入,并以像素为单位确定组件的高度和宽度。
layout 设置为 vertical 时,其中会包含必需的子属性 isMultiLine,可用于确定用户界面中的属性是否换行。(请注意,当 layout 设置为 horizontal 时,这些属性会自动换行。)当 isMultiLine 设置为 true 时,其中会包含必需的子属性 maxHeight;而当 isMultiLine 设置为 false 时,其中则会包含必需的子属性 maxWidth。在这种情况下,子属性会根据设置的配置内容进行更改。子属性的深度也会变为两层。
下面是 layout 属性的示例代码,可供参考:
layout 设置为 horizontal 时:
{
"layout":{
"selectedKey":"horizontal",
"additionalData":{
"dimensionDefinition":{
"maxHeight":{
"version":"1.0.0",
"value":200
},
"maxWidth":{
"version":"1.0.0",
"value":300
}
}
},
"version":"1.0.0"
}
}
layout 设置为 verticalisMultiLine 设置为 true 时:
{
"layout":{
"selectedKey":"vertical",
"additionalData":{
"isMultilineDefinition":{
"isMultiLine":{
"additionalData":{
"dimensionDefinition":{
"maxHeight":{
"version":"1.0.0",
"value":200
}
}
},
"version":"1.0.0",
"value":true
}
}
},
"version":"1.0.0"
}
}
layout 设置为 verticalisMultiLine 设置为 false 时:
{
"layout":{
"selectedKey":"vertical",
"additionalData":{
"isMultilineDefinition":{
"isMultiLine":{
"additionalData":{
"dimensionDefinition":{
"maxWidth":{
"version":"1.0.0",
"value":300
}
}
},
"version":"1.0.0",
"value":false
}
}
},
"version":"1.0.0"
}
}
容器键
在 JSON 配置文件中,具有至少一个子属性的所有属性均包含 additionalData 键。在 additionalData 键内还有另一个键,称为容器键,该键用于保留子属性。
例如,让我们再来看一下 enableSearch 属性:
{
"enableSearch":{
"additionalData":{
"itemListSearchDefinition":{
"searchHintText":{
"value":"Search the list"
}
}
},
"value":true
}
顶层属性为 enableSearch,其中包含 additionalData。在 additionalData 内有容器键 itemListSearchDefinition,其中包含子属性 searchHintText
一个属性通常只有一个容器键,且所有子属性均包含在其中。但是,当单一属性包含多个容器键时会出现例外情况,其中,每个容器键均可保留一个或多个子属性。
这对您有帮助吗?