LayerListViewModel

AMD: require(["geoscene/widgets/LayerList/LayerListViewModel"], (LayerListVM) => { /* 代码 */ });
ESM: import LayerListVM from "@geoscene/core/widgets/LayerList/LayerListViewModel";
类: geoscene/widgets/LayerList/LayerListViewModel
继承于: LayerListViewModel Accessor
起始版本: GeoScene API for JavaScript 4.22

LayerList 微件提供逻辑。要从 LayerList 小部件隐藏地图中的图层,请将图层上的 listMode 属性设置为 hide 。

示例:

构造函数

new LayerListViewModel(properties)
参数:
properties Object
optional

所有可传入构造函数的属性,请参见属性列表

属性列表

可以设置、检索或监听的属性。参见 使用属性
展示继承属性 隐藏继承属性
属性 类型 描述
String更多信息

类名。

更多信息Accessor
ListItemCreatedHandler更多信息

指定访问每个 ListItem 的函数。

更多信息LayerListViewModel
Collection<ListItem>更多信息

代表业务层的 ListItem 的集合。

更多信息LayerListViewModel
String更多信息

视图模型的状态。

更多信息LayerListViewModel
MapView|SceneView更多信息

微件将从中操作的视图。

更多信息LayerListViewModel

属性详细说明

declaredClass Stringreadonly inherited
起始版本: GeoScene API for JavaScript 4.22

类名。类的名称声明格式为 geoscene.folder.className

listItemCreatedFunction ListItemCreatedHandler
起始版本: GeoScene API for JavaScript 4.22

指定访问每个 ListItem 的函数。每个列表项都可以根据其可修改的属性进行修改。可以使用 ListItem 的 actionsSections 属性将操作添加到列表项。

示例代码:
layerListViewModel.listItemCreatedFunction = function (event) {

   // The event object contains properties of the
   // layer in the LayerList widget.

   let item = event.item;

   if (item.title === "US Demographics") {
     // open the list item in the LayerList
     item.open = true;
     // change the title to something more descriptive
     item.title = "Population by county";
     // set an action for zooming to the full extent of the layer
     item.actionsSections = [[{
       title: "Go to full extent",
       className: "esri-icon-zoom-out-fixed",
       id: "full-extent"
     }]];
   }
});
operationalItems Collection<ListItem>readonly

代表业务层的 ListItem 的集合。要从 LayerList 微件中隐藏图层,请将图层上的 listMode 属性设置为 hide

示例:
state Stringreadonly

视图模型的状态。

可选值:"loading"|"ready"|"disabled"

默认值:disabled

微件将从中操作的视图。

方法列表

属性 返回值类型 描述
更多信息

在 LayerList 微件中将列表项从一个位置移动到另一个位置。

更多信息LayerListViewModel
更多信息

触发 trigger-action 事件并执行给定的 action 或 action toggle

更多信息LayerListViewModel

方法详细说明

moveListItem(targetItem, fromParentItem, toParentItem, newIndex)
起始版本: GeoScene API for JavaScript 4.22

在 LayerList 微件中将列表项从一个位置移动到另一个位置。这允许用户重新排序地图中的业务图层,甚至重新组织 GroupLayers 的子图层。您不能将 GroupLayer 作为子图层移动到另一个 GroupLayer。您也不能将 MapImageLayer 子图层移动到 MapImageLayer 之外。

出于以下文档的目的,项目(或列表项目)是指地图中的图层。父项指的是 GroupLayer 或 MapImageLayer,子项指的是 GroupLayer 或 MapImageLayer 的子层。

参数:
targetItem ListItem

要移动的列表项(或图层)。

fromParentItem ListItem

如果 targetItem 是父列表项的子项,并且您要将其移出 parentItem,则使用此参数指示要从父项移出。

toParentItem ListItem

如果将 targetItem 作为子项移动到另一个父项,则将其移动到的父列表项。

newIndex Number

要将 targetItem 移动到的新索引。如果将项作为子项移动到父项,则指定该项在该父项中的索引。

示例代码:
// Moves the first layer to the final position in the map
const viewModel = layerList.viewModel;
const item = layerList.operationalItems.getItemAt(0);
const lastIndex = layerList.operationalItems.length - 1;

viewModel.moveListItem(item, null, null, lastIndex);
// Moves the first sublayer in the first group layer
// to the first position in the second group layer
const viewModel = layerList.viewModel;
const parentItem1 = layerList.operationalItems.getItemAt(0);
const subItem1 = parentItem1.children.getItemAt(0);
const parentItem2 = layerList.operationalItems.getItemAt(1);

viewModel.moveListItem(subItem1, parentItem1, parentItem2, 0);
triggerAction(action, item)

触发 trigger-action 事件并执行指定的 action 或 action toggle

参数:

要执行的动作。

item ListItem

与操作关联的项目。

事件概览

属性 类型 描述
{action: ActionButton,ActionToggle,item: ListItem}
更多信息

在用户点击 actionaction toggle 后触发在 LayerList 微件内。

更多信息 LayerListViewModel

Event Details

trigger-action

在用户点击 actionaction toggle 后触发在 LayerList 微件内。此事件可用于定义单击特定操作时要执行的自定义函数。

属性:

用户单击的操作。

item ListItem

与操作关联的项目。

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.