什么是 SAP UI5 的绑定路径

举报
汪子熙 发表于 2022/10/03 10:14:24 2022/10/03
【摘要】 SAP UI5 绑定路径由许多名称标记(name token)组成,这些标记由分隔符字符分隔。 在框架提供的所有模型中,分隔符 char 是斜线"/" 即 / 符号。绑定路径可以是绝对的,也可以是相对的:绝对绑定路径以斜杠 “/” 开头,相对绑定路径以名称标记开头,并且相对于绑定的控件的上下文进行解析。 在聚合绑定的情况下,聚合的每个条目都存在上下文,也可以使用 setBindingCont...

SAP UI5 绑定路径由许多名称标记(name token)组成,这些标记由分隔符字符分隔。 在框架提供的所有模型中,分隔符 char 是斜线"/" 即 / 符号。

绑定路径可以是绝对的,也可以是相对的:绝对绑定路径以斜杠 “/” 开头,相对绑定路径以名称标记开头,并且相对于绑定的控件的上下文进行解析。 在聚合绑定的情况下,聚合的每个条目都存在上下文,也可以使用 setBindingContext 方法为控件显式设置上下文。

当您使用多个模型时,请在绑定路径中指定模型名称以寻址正确的模型。 这同样适用于为此类模型设置绑定上下文。 绑定路径必须以模型名称开头,后跟“>” (即大于号),如下面的示例所示,用于设置绑定上下文。

一些例子:

'/Products/0/ProductName'
'/Products(0)/ProductName'
'ProductName'

//with model name
'myModelName>/Products/0/ProductName'
'myModelName>/Products(0)/ProductName'
'myModelName>ProductName'

json 模型的例子

json 数据:

{
    company: {
        name: "Treefish Inc",
        info: {
            employees: 3,
        },
        contacts: [
            {
                name: "Barbara",
                phone: "873"
            },
            {
                name: "Gerry",
                phone: "734"
            },
            {
                name: "Susan",
                phone: "275"
            }
        ]
    }
}

绝对绑定的例子:

  • /company/name
  • /company/info/employees
  • /company/contacts

相对绑定的例子:

  • name
  • info/employees
  • contacts

OData 绑定的例子

如何创建 OData 模型?

一个 OData 模型实例只能覆盖一个 OData 服务。 要访问多个服务,您必须创建多个 OData 模型实例。 创建 ODataModel 实例时唯一的必需参数是服务 URL。 它可以作为第一个参数或在 mParameters 映射中传递给构造函数。

例子:

var oModel = new sap.ui.model.odata.v2.ODataModel("http://services.odata.org/Northwind/Northwind.svc/");
var oModel = new sap.ui.model.odata.v2.ODataModel({serviceUrl: "http://services.odata.org/Northwind/Northwind.svc"});

创建 ODataModel 实例时,会发送一个请求以检索服务元数据:

http://services.odata.org/Northwind/Northwind.svc/$metadata

服务元数据按服务 URL 进行缓存。使用同一服务的多个 OData 模型可以共享此元数据。 只有第一个模型实例会触发 $metadata 请求。可以通过在 Odata 模型实例上调用 getServiceMetadata() 方法来访问服务元数据的 JSON 表示。

给 OData 请求增添 url 参数的两种办法

(1) 直接添加到 url 末尾:

var oModel = new sap.ui.model.odata.v2.ODataModel(“http://myserver/MyService.svc/?myParam=value&myParam2=value”);

(2) 使用 OData 模型构造函数的参数 mparameters:

var oModel = new sap.ui.model.odata.v2.ODataModel({ 
    serviceUrl: "http://services.odata.org/Northwind/Northwind.svc",    
    serviceUrlParams: {
        myParam: "value1",
        myParam2: "value2"
    },
    metadataUrlParams: {
        myParam: "value1",
        myParam2: "value2"
    }
});
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。