提供 FeatureForm 微件的逻辑。
已知限制
FeatureForm 微件尚未与 3.x AttributeInspector 微件中提供的功能完全匹配。例如,当前不支持编辑附件或相关要素属性。虽然,可以使用编辑器微件编辑附件。
- 另请参阅:
let featureForm = new FeatureForm({
viewModel: { // Autocasts as new FeatureFormViewModel()
layer: featureLayer // Associates the FeatureForm to the layer
},
container: "formDiv"
});
构造函数
属性概述
名称 | 类型 | 描述 | 类: | |
---|---|---|---|---|
String | 更多详情 类的名称。 | 更多详情 | Accessor | |
Graphic | 更多详情 包含可编辑属性的关联要素。 | 更多详情 | FeatureFormViewModel | |
FormTemplate | 更多详情 用于表单的关联模板。 | 更多详情 | FeatureFormViewModel | |
InputField[]|InputFieldGroup[] | 更多详情 由 FeatureForm 微件渲染的输入字段和/或分组字段。 | 更多详情 | FeatureFormViewModel | |
FeatureLayer|SceneLayer | 更多详情 包含可编辑要素属性的图层。 | 更多详情 | FeatureFormViewModel | |
String | 更多详情 微件的状态。 | 更多详情 | FeatureFormViewModel | |
Boolean | 更多详情 如果为 true,则可以在不引入数据验证问题的情况下提交此表单。 | 更多详情 | FeatureFormViewModel | |
Boolean | 更多详情 指示是否所有输入字段都有效。 | 更多详情 | FeatureFormViewModel |
属性详细信息
-
类的名称。声明的类名格式为
geoscene.folder.className
。
-
feature Graphic
-
包含可编辑属性的关联要素。访问此内容的常用方法是通过 MapView 或 SceneView'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 } }); });
-
formTemplate FormTemplateautocast起始版本:GeoScene API for JavaScript 4.16
-
用于表单的关联模板。
在 formTemplate 中,您可以配置表单的显示方式,并设置表单的任何关联属性,例如标题、说明、字段元素等。
- 另请参阅:
-
-
由 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 Objectoptional事件负载。
返回:类型 说明 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() 方法更新要素的属性。
- 属性:
-
有效的字段名称。
无效的字段名称。
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
-
更新字段值时激发。
- 属性:
-
layer FeatureLayer
关联的要素图层。
feature Graphic关联的要素。
fieldName String更新的字段。
更新的字段值。
valid Boolean如果为 true,则该值符合字段的定义。