用于视图设计时预览的事件处理程序

以下函数可用于提供增强的设计时体验,允许用户界面开发人员直观呈现视图在运行时的显示方式。 设置这些函数,使运行时视图 API 尽可能并行运行,以简化代码复用。

函数 描述
getHTMLSnippet() 将 HTML 片段返回为字符串,以进行视图设计时呈现。 如果在视图上还设置了 HTML 预览文件,那么将自动设置并返回 this.htmlSnippet 的内容。 可以改写此函数以修改片段,如果未指定 HTML 预览,请通过编码提供模板。
createPreview(containingDiv, labelText, callback) 在设计时创建视图的预览。 如果已提供 HTML 片段 (由受管资产或 getHTMLSnippet() function提供) ,那么 containingDiv 将具有以下内容:
  • containingDiv(Node)。 要在其中创建预览内容的编辑器所提供和拥有的包装器 div。
  • labelText (String)。 初始标签文本 (如果视图支持标签)。
  • callback (function)。 在创建预览后必须调用的回调函数。 回调允许创建异步预览,如 require 的使用。
destroyPreview() 当不再使用视图实例的预览时调用的函数。 使用此函数可清除预览在处于活动状态时使用的资源。
propertyChanged(propertyName, propertyValue) 当第一次初始化视图实例和属性更改时调用的函数。 这些更改与 modelChanged 函数返回的更改类似,但将值映射到运行时值(如有可能)除外。

一些模型面组合成一个分组。 例如,返回一个包含当前所选设备的所有有效值的 @style 通知,而不是针对 @width@height 等的单独通知。

如果数据类型为 URL(例如,在库存映像绑定情况下)并且选择受管资产,那么将 propertyValue 解析为可用 URL 或空(如果未找到)。

如果配置选项积极响应,那么传递有效值,这可能从另一个屏幕大小设置继承而来。

如果值为本地化键,那么传递的值是当前语言环境的解析值。

如果用户选择不同的屏幕大小设置,那么通过属性名 @device 调用函数。

  • propertyName(String)。 要更改的项的配置选项的名称。 内置配置选项和其他特定事件具有 @ 前缀,如下所示:
    • @binding。 视图实例的数据绑定。
    • @layoutItemId。 视图实例的标识。 在运行时,这称为 viewID,而在属性中,这称为 controlID
    • @device。 当前在编辑器中选择的屏幕大小。
    • @style。 组合成单个对象的布局选项集。
  • propertyValue。 与属性关联的数据。 如果属性为配置选项,那么数据始终为 String。 如果将复杂静态数据设置为配置数据,那么 propertyValue 为 JSON 字符串。 如果配置选项为服务,那么服务的 UUID 将为值。 建议不要使用这些高级预览事件处理程序来调用在视图实例上设置的 AJAX 服务。 如果属性名为 @style@device,那么数据为 Object,而不是 String。
modelChanged(propertyName, propertyValue)

模型更改时调用的函数。 通过配置数据更改,或对绑定数据(通过 @binding 属性名)和布局项控件标识 (@layoutItemId) 的更改来触发通知。

  • propertyName(String)
  • propertyValue
在任何 JavaScript 助手函数中,this.context 存在并且可以调用以执行各种操作:
this.context 描述
context.device

提供编辑器中当前所选的设备。 建议您改为使用 propertyChanged() 函数。

context.getManagedAssetUrl(fileName, assetType, projectAcronym, returnWithoutAssetName, pathInZip)
返回指向 fileName 指定的受管资产的 URL。
  • fileName(String)。 受管资产的文件名。 示例:“button_palette.png”
  • assetType (String)。 未使用。 包含此函数是为了与运行时 API 一致。
  • projectAcronym(String)。 未使用。 包含此函数是为了与运行时 API 一致。
  • returnWithoutAssetName(null)。 未使用。 包含此函数是为了与运行时 API 一致。
  • pathInZip (String)。如果定义了,则 URL 指向.zip文件中的路径。 (假设受管资产为 .zip 文件)。