用途 本技能适用于在 Web 应用中嵌入 Arcade 表达式编辑器。@arcgis/coding-components 包提供 arcgis-arcade-editor Web 组件,是一个用于编写、测试和调试 Arcade 表达式的全功能代码编辑器。该组件包为 5.0 新增,没有 4.x 对应版本。
主要能力 arcgis-arcade-editor 是用于 Arcade 表达式的富代码编辑器,具备语法高亮、诊断、代码建议以及文档侧边面板。可通过属性配置脚本内容、编辑上下文(profile)、测试数据(testData)、代码片段(snippets)、代码建议(suggestions)以及 Monaco 风格编辑器选项(editorOptions);还可隐藏侧边操作栏、隐藏文档操作、设置当前打开的侧边面板和侧边操作栏展开状态。组件提供 setFocus() 和 componentOnReady() 方法,并会触发 arcgisScriptChange(脚本内容变化,防抖)和 arcgisDiagnosticsChange(诊断信息变化)事件。
使用方式 可通过 CDN(无需构建工具)或直接 ESM 导入(配合构建工具)加载。CDN 方式需先加载 ArcGIS Maps SDK 脚本(https://js.arcgis.com/5.0/),再加载 Coding Components 模块(https://js.arcgis.com/5.0/coding-components/)。直接导入方式为:import "@arcgis/coding-components/components/arcgis-arcade-editor"。使用时在页面放置 <arcgis-arcade-editor> 元素,并通过 JavaScript 设置 script、profile、testData、snippets 等属性;profile 和 testData 等复杂对象属性必须通过 JavaScript 设置,不能作为 HTML 属性。可监听 arcgisScriptChange 与 arcgisDiagnosticsChange 事件处理脚本更新和诊断结果。
适用场景 用于构建 Arcade 编写、测试和调试界面,例如在 Web 地图应用中提供表达式编辑面板,让用户为弹出窗口、可视化等配置 Arcade 表达式。资料中提供了一个与地图集成的完整示例:加载 arcgis-map 和编码组件,等待视图就绪、图层加载后设置初始脚本与 profile,并监听脚本变化。
限制与常见问题 1)必须单独加载 coding-components 脚本,仅加载核心 SDK 会导致 arcgis-arcade-editor 无法识别并渲染为空。2)编辑器需显式设置宽度和高度,否则高度为零不可见。3)profile 或 testData 作为 HTML 属性设置会被静默忽略,必须通过 JavaScript 设置。4)arcgisScriptChange 事件触发较频繁,处理函数中应避免昂贵操作,必要时自行添加防抖。资料中未提供该组件的收费、价格、平台支持范围或性能指标等信息。
相关技能 资料提及可参考 arcgis-arcade(Arcade 表达式语言语法与用法)、arcgis-widgets-ui(承载编辑器面板的布局组件)、arcgis-popup-templates(在弹出内容中使用 Arcade 表达式)和 arcgis-visualization(Arcade 驱动可视化变量与渲染器)。