提供 FeatureForm 微件的逻辑。
已知限制
目前不支持编辑附件或相关的要素属性。不过,可以使用 Editor 微件编辑附件。
- 另请参阅
let featureForm = new FeatureForm({
viewModel: { // Autocasts as new FeatureFormViewModel()
layer: featureLayer // Associates the FeatureForm to the layer
},
container: "formDiv"
});
构造函数
属性概述
名称 | 类型 | 描述 | 类 |
---|---|---|---|
String | 类的名称。 更多详情 | Accessor | |
Graphic | 包含可编辑属性的关联要素。 更多详情 | FeatureFormViewModel | |
FormTemplate | 用于表单的关联 template。 更多详情 | FeatureFormViewModel | |
InputField[]|InputFieldGroup[] | 由 FeatureForm 微件渲染的输入字段和/或分组字段。 更多详情 | FeatureFormViewModel | |
FeatureLayer|SceneLayer | 包含可编辑要素属性的图层。 更多详情 | FeatureFormViewModel | |
String | 微件的状态。 更多详情 | FeatureFormViewModel | |
Boolean | 如果为 true,则可以在不引入数据验证问题的情况下提交此表单。 更多详情 | FeatureFormViewModel | |
Boolean | 指示是否所有输入字段都有效。 更多详情 | FeatureFormViewModel |
属性详细信息
-
类的名称。声明的类名称格式化为
geoscene.folder.className
。
-
feature Graphic
-
示例
// 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 Maps SDK for JavaScript 4.16
-
用于表单的关联 template。
在 formTemplate 中,您可以配置表单的显示方式,并设置表单的任何关联属性,例如标题、说明、字段元素等。
-
-
由 FeatureForm 微件渲染的输入字段和/或分组字段。
-
-
包含可编辑要素属性的图层。如果未指定此图层,则它与图形图层相同。
-
state Stringreadonly
-
微件的状态。下表列出了可能的值。
值 描述 ready 满足依赖关系并具有有效的属性值。 disabled 依赖项丢失,无法提供有效的输入。 可能的值:"ready"|"disabled"
- 默认值:disabled
-
submittable Boolean
-
如果为 true,则可以在不引入数据验证问题的情况下提交此表单。
-
valid Boolean
-
指示是否所有输入字段都有效。
方法概述
名称 | 返回值类值 | 描述 | 类 |
---|---|---|---|
添加一个或多个与对象的生命周期相关联的句柄。 更多详情 | Accessor | ||
Boolean | 在实例上触发事件。 更多详情 | FeatureFormViewModel | |
InputField | 查找输入字段的便捷方法。 更多详情 | FeatureFormViewModel | |
Object | 返回所有字段值,无论它们是否已更新。 更多详情 | FeatureFormViewModel | |
Boolean | 指示实例上是否存在与提供的事件名称相匹配的事件监听器。 更多详情 | FeatureFormViewModel | |
Boolean | 如果存在指定的句柄组,则返回 true。 更多详情 | Accessor | |
更新 _featureClone 上的几何,并触发对依赖于要素几何的表达式的重新求值 更多详情 | FeatureFormViewModel | ||
Object | 在实例上注册事件处理程序。 更多详情 | FeatureFormViewModel | |
移除对象拥有的句柄组。 更多详情 | Accessor | ||
用于设置更新的字段值。 更多详情 | FeatureFormViewModel | ||
触发 submit 事件。 更多详情 | FeatureFormViewModel | ||
Object[] | FeatureFormViewModel |
方法详细说明
-
addHandles(handleOrHandles, groupKey)inherited起始版本:GeoScene Maps SDK for JavaScript 4.25
-
添加一个或多个与对象的生命周期相关联的句柄。当对象被销毁时,将移除句柄。
// Manually manage handles const handle = reactiveUtils.when( () => !view.updating, () => { wkidSelect.disabled = false; }, { once: true } ); // Handle gets removed when the object is destroyed. this.addHandles(handle);
参数handleOrHandles WatchHandle|WatchHandle[]对象销毁后,标记为要移除的句柄。
groupKey *optional标识句柄应添加到的组的键。组中的所有句柄稍后都可使用 Accessor.removeHandles() 进行删除。如果未提供键,则句柄将被添加到默认组。
-
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。
-
起始版本:GeoScene Maps SDK for JavaScript 4.25
-
如果存在指定的句柄组,则返回 true。
参数groupKey *optional组键。
返回类型 描述 Boolean 如果存在指定的句柄组,则返回 true
。示例// Remove a named group of handles if they exist. if (obj.hasHandles("watch-view-updates")) { obj.removeHandles("watch-view-updates"); }
-
notifyFeatureGeometryChanged()起始版本:GeoScene Maps SDK for JavaScript 4.25
-
更新 _featureClone 上的几何,并触发对依赖于要素几何的表达式的重新求值
-
on(type, listener){Object}
-
在实例上注册事件处理程序。调用此方法将事件与监听器挂钩。
参数要侦听的事件或者事件数组。
listener Function事件触发时要调用的函数。
返回类型 描述 Object 返回具有 remove()
方法的事件处理程序,可调用该方法来停止侦听事件。属性 类型 描述 remove Function 调用时,从事件中移除侦听器。 示例view.on("click", function(event){ // event is the event handle returned after the event fires. console.log(event.mapPoint); });
-
removeHandles(groupKey)inherited起始版本:GeoScene Maps SDK for JavaScript 4.25
-
移除对象拥有的句柄组。
参数groupKey *optional要移除的组键或组键的数组或集合。
示例obj.removeHandles(); // removes handles from default group obj.removeHandles("handle-group"); obj.removeHandles("other-handle-group");
-
setValue(fieldName, value)起始版本:GeoScene Maps SDK for JavaScript 4.21
-
用于设置更新的字段值。
这将在表单中渲染新值,但不会更新基础输入要素的属性。
参数fieldName String要更新的目标字段。
要在目标字段上设置的值。
-
submit()
-
触发 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(); }
-
起始版本:GeoScene Maps SDK for JavaScript 4.23
-
参数values String
表单字段及其值的哈希映射
options Objectoptional一个对象,指定了应被视为错误的其他选项。
规范includeIncompleteViolations Booleanoptional如果为
true
,则返回字段组的意外冲突,这些字段组由于尚未为其所有字段指定值而无效。如果为false
,则忽略这些违规行为。返回类型 描述 Object[] 对象数组,每个对象表示违反字段组的条件值规则
事件概述
名称 | 类型 | 描述 | 类 |
---|---|---|---|
{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,则该值符合字段的定义。