关于javascript:调用-sapuibaseManagedObject-的构造函数时如何传递绑定路径进去

42次阅读

共计 1466 个字符,预计需要花费 4 分钟才能阅读完成。

咱们通过一个具体的例子来学习。

思考下列代码:

new Dialog({title: "{/title}",       // embedded binding expression, points to a string property in the data model
   ...
   content: {               // binding info object
      path : "/inputItems", // points to a collection in the data model
      template : new Input(...)
   }
});

请留神,在设置字符串值时,这些值中的任何花括号都须要本义,因而它们不会被解释为绑定表达式。应用 #escapeSettingsValue 这样做。

除了上面记录的设置之外,ManagedObject 自身还反对以下非凡设置:

  • id : sap.ui.core.ID 新实例的 ID。一些子类(元素、组件)要求 id 在特定范畴内是惟一的(例如,元素 ID 在所有元素中必须是惟一的,组件 ID 在所有组件中必须是惟一的)。
  • models : object sap.ui.model.Model 实例的映射,由它们的模型名称(别名)键控。此对象中的每个键为 k 的条目与调用 this.setModel(models[k], k); 具备雷同的成果。
  • bindingContexts : object sap.ui.model.Context 实例的映射,由它们的模型名称键控。此对象中每个键为 k 的条目与调用 this.setBindingContext(bindingContexts[k], k); 的成果雷同。
  • objectBindings : object 由相应模型名称键入的绑定门路映射。此对象中每个键为 k 的条目与调用 this.bindObject(objectBindings[k], k); 的成果雷同。
  • metadataContexts : object 由相应模型或上下文名称键入的单个绑定上下文数组。
  • metadataContexts 非凡设置的目标是从控件的绑定上下文中推断出尽可能多的信息,以便可能预约义某些规范属性,例如可见,启用,工具提醒,…

该构造是单个上下文的数组,其中单个上下文是蕴含以下键的映射:

  • path: string (强制) 对应模型属性或对象的门路,例如 ‘/ 客户 / 名称 ’。门路也能够是绝对的,例如 ‘ 姓名 ’
  • model:字符串(可选)模型的名称,如果没有名称则采纳未定义的模型
  • name:字符串(可选)在模板阶段应用的上下文名称
  • kind: string(可选)适配器的品种,能够是单个属性的字段,也能够是结构化上下文的对象。
  • adapter:字符串(可选)依据上下文传递管制相干数据的解释类的门路,例如 enabled,visible 等等。如果未提供,则 OData 元数据会被解析应用。

提供 metadataContexts 的语法如下:{SINGLE_CONTEXT1},...,{SINGLE_CONTEXTn} 或为简略起见,如果只有一个上下文,则间接应用 {SINGLE_CONTEXT}

看一个例子:

  • {/Customers/Name}: 在默认模型中设置的客户实体的属性名称的绝对路径的单个局部
  • {path: 'Customers/Name', model:'json'}: 单个局部,具备指向命名模型中设置的客户实体的属性名称的绝对路径
  • {parts: [{path: 'Customers/Name'},{path: 'editable', model: 'viewModel'}]}:单个绑定上下文的组合,一个来自默认模型的上下文,一个来自 viewModel

正文完
 0