ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

调用 sap.ui.base.ManagedObject 的构造函数时,如何传递绑定路径进去

2022-09-10 16:35:24  阅读:234  来源: 互联网

标签:构造函数 模型 绑定 base 名称 path model 上下文 ManagedObject


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

考虑下列代码:

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

标签:构造函数,模型,绑定,base,名称,path,model,上下文,ManagedObject
来源: https://www.cnblogs.com/sap-jerry/p/16676798.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有