FeatureFormViewModel

AMD: require(["geoscene/widgets/FeatureForm/FeatureFormViewModel"], (FeatureFormVM) => { /* code goes here */ });
ESM: import FeatureFormVM from "@geoscene/core/widgets/FeatureForm/FeatureFormViewModel";
类: geoscene/widgets/FeatureForm/FeatureFormViewModel
继承于:FeatureFormViewModel Accessor
起始版本:GeoScene API for JavaScript 4.9

提供 FeatureForm 微件的逻辑。

已知限制

FeatureForm 微件尚未与 3.x AttributeInspector 微件中提供的功能完全匹配。例如,当前不支持编辑附件或相关要素属性。虽然,可以使用编辑器微件编辑附件。

另请参阅:
示例:
let featureForm = new FeatureForm({
  viewModel: { // Autocasts as new FeatureFormViewModel()
    layer: featureLayer   // Associates the FeatureForm to the layer
  },
  container: "formDiv"
});

构造函数

new FeatureFormViewModel(properties)
参数:
properties Object
optional

有关可能传递到构造函数中的所有属性的列表,请参阅属性

属性概述

可以设置、检索或侦听任何属性。请参阅使用属性主题。
显示继承的属性 隐藏继承的属性
名称 类型 描述 类:
String更多详情

类的名称。

更多详情Accessor
Graphic更多详情

包含可编辑属性的关联要素。

更多详情FeatureFormViewModel
FormTemplate更多详情

用于表单的关联模板

更多详情FeatureFormViewModel
InputField[]|InputFieldGroup[]更多详情

FeatureForm 微件渲染的输入字段和/或分组字段。

更多详情FeatureFormViewModel
FeatureLayer|SceneLayer更多详情

包含可编辑要素属性的图层。

更多详情FeatureFormViewModel
String更多详情

微件的状态。

更多详情FeatureFormViewModel
Boolean更多详情

如果为 true,则可以在不引入数据验证问题的情况下提交此表单。

更多详情FeatureFormViewModel
Boolean更多详情

指示是否所有输入字段都有效。

更多详情FeatureFormViewModel

属性详细信息

declaredClass Stringreadonly inherited

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

feature Graphic

包含可编辑属性的关联要素。访问此内容的常用方法是通过 MapViewSceneView's hitTest() 方法。

示例:
// Check if a user clicked on an incident feature.
view.on("click", function(event) {
  view.hitTest(event).then(function(response) {
    // Display the attributes of selected incident feature in the form
    if (response.results[0].graphic && response.results[0].graphic.layer.id == "incidentsLayer") {
       formVM.feature = result.results[0].graphic
    }
  });
});
起始版本:GeoScene API for JavaScript 4.16

用于表单的关联模板

formTemplate 中,您可以配置表单的显示方式,并设置表单的任何关联属性,例如标题、说明、字段元素等。

另请参阅:
inputFields InputField[]|InputFieldGroup[]readonly

FeatureForm 微件渲染的输入字段和/或分组字段。

包含可编辑要素属性的图层。如果未指定此图层,则它与图形的图层相同。

state Stringreadonly

微件的状态。可能的值如下表所示。

说明
ready 满足依赖项并具有有效的属性值。
disabled 依赖项丢失,无法提供有效的输入。

可能的值"ready"|"disabled"

默认值:disabled
submittable Boolean

如果为 true,则可以在不引入数据验证问题的情况下提交此表单。

valid Boolean

指示是否所有输入字段都有效。

方法概述

名称 返回类型 描述 类:
FeatureFormViewModel
Boolean更多详情

在实例上发出事件。

更多详情FeatureFormViewModel
InputField更多详情

查找输入字段的便捷方法。

更多详情FeatureFormViewModel
Object更多详情

返回所有字段值,无论它们是否已更新。

更多详情FeatureFormViewModel
Boolean更多详情

指示实例上是否存在与提供的事件名称匹配的事件侦听器。

更多详情FeatureFormViewModel
Object更多详情

在实例上注册事件处理程序。

更多详情FeatureFormViewModel
更多详情

用于设置更新的字段值。

更多详情FeatureFormViewModel
更多详情

触发提交事件。

更多详情FeatureFormViewModel
FeatureFormViewModel

方法详细信息

_getCompiledExpression(nameOrExpression)
参数:
nameOrExpression

expressionInfos 中定义的表达式的名称,或表达式本身的源文本

返回:
与 nameOrExpression 指定的表达式相对应的已编译 Arcade 脚本
emit(type, event){Boolean}

在实例上发出事件。仅当创建此类的子类时,才应使用此方法。

参数:
type String

事件的名称。

event Object
optional

事件负载。

返回:
类型 说明
Boolean true 如果听取了侦听者的通知
findField(fieldName){InputField}

查找输入字段的便捷方法。

参数:
fieldName String

要查找的输入字段。

返回:
类型 说明
InputField 返回 InputField 的实例。
getValues(){Object}

返回所有字段值,无论它们是否已更新。

返回:
类型 说明
Object 字段名及其值的键值对的对象。
另请参阅:
示例:
function updateFeature() {
  // Get the updated field values
  const attributes = formVM.getValues();
  // Call applyEdits on the feature layer
  layer.applyEdits({
    // Pass in the updated field values
    updateFeatures: [{ attributes }]
  });
}
hasEventListener(type){Boolean}

指示实例上是否存在与提供的事件名称匹配的事件侦听器。

参数:
type String

事件的名称。

返回:
类型 说明
Boolean 如果类支持输入事件,则返回 true。
on(type, listener){Object}

在实例上注册事件处理程序。调用此方法将事件与侦听器挂钩。

参数:

要侦听的事件或事件数组。

listener Function

事件激发时要调用的函数。

返回:
类型 说明
Object 返回具有 remove() 方法的事件处理程序,应调用该方法以停止侦听事件。
属性 类型 说明
remove 函数 调用时,从事件中删除侦听器。
示例:
view.on("click", function(event){
  // event is the event handle returned after the event fires.
  console.log(event.mapPoint);
});
setValue(fieldName, value)
起始版本:GeoScene API for JavaScript 4.21

用于设置更新的字段值。

这将在表单中渲染新值,但不会更新基础输入要素的属性。

参数:
fieldName String

要更新的目标字段。

要在目标字段上设置的值。

submit()

触发提交事件。

示例:
// Listen for when 'submit' is called.
// Once it is fired, update the feature.
formVM.on("submit", updateFeature);

// When the DOM's button (btnUpdate) is clicked,
// Update attributes of the selected feature.
document.getElementById("btnUpdate").onclick = function() {
  // Fires feature form's submit event.
  formVM.submit();
}
validateContingencyConstraints(values, options)
参数:
values

表单字段及其值的哈希映射

options

指定应将哪些内容视为错误的选项 - - includeIncompleteViolations:如果为 true,则返回字段群组的应急冲突,这些字段组由于尚未为其所有字段指定值而无效。如果为 false,则忽略此类违规行为

返回:
一个对象数组,每个对象表示违反字段群组的或有值规则

事件概述

Name名称 类型 描述 类:
{valid: String[],invalid: String[],values: Object}
更多详情

在调用 submit() 方法时触发。

更多详情 FeatureFormViewModel
{layer: FeatureLayer,feature: Graphic,fieldName: String,value: Number,String,null,valid: Boolean}
更多详情

更新字段值时激发。

更多详情 FeatureFormViewModel

事件详细信息

submit

在调用 submit() 方法时触发。调用 FeatureLayer.applyEdits() 方法更新要素的属性。

属性:
valid String[]

有效的字段名称。

invalid String[]

无效的字段名称。

values Object

字段名称及其所有值的键值对的对象,无论它们是否已更新。

另请参阅:
示例:
// Listen to the feature form's submit event.
featureForm.on("submit", function(){
  if (editFeature) {
    // Grab updated attributes from the form.
    const updated = featureForm.getValues();

    // Loop through updated attributes and assign
    // the updated values to feature attributes.
    Object.keys(updated).forEach(function(name) {
      editFeature.attributes[name] = updated[name];
    });

    // Setup the applyEdits parameter with updates.
    const edits = {
      updateFeatures: [editFeature]
    };
    applyEdits(edits);
  }
});
value-change

更新字段值时激发。

属性:

关联的要素图层。

feature Graphic

关联的要素。

fieldName String

更新的字段。

更新的字段值。

valid Boolean

如果为 true,则该值符合字段的定义。

您的浏览器不再受支持。请升级浏览器以获得最佳体验。有关更多详细信息,请参阅我们的 浏览器弃用帖子