SAP UI5 - Data Model(TODO)

JSONModel与ODataModel详解
本文详细介绍了JSONModel的数据结构及其访问路径,并对比了ODataModel的不同版本,重点推荐使用v2版本。同时,文章还讲解了如何声明ODataModel、获取OData服务元数据及如何通过该模型进行CRUD操作。

1. JSON Model

{
    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

2. OData Model

sap.ui.model.odata.ODataModel 不建议使用,使用sap.ui.model.odata.v2.ODataModel替代。

声明OData Model

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

获取OData Service metadata:

var oMetadata = oModel.getServiceMetadata();

请求OData Service数据时可以添加额外的信息:

 1 var oModel = new sap.ui.model.odata.v2.ODataModel({ 
 2     serviceUrl: "http://services.odata.org/Northwind/Northwind.svc",    
 3     serviceUrlParams: {
 4         myParam: "value1",
 5         myParam2: "value2"
 6     },
 7     metadataUrlParams: {
 8         myParam: "value1",
 9         myParam2: "value2"
10     }
11 });

请求Service数据时 会访问

"http://myserver/MyService.svc/?myParam=value&myParam2=value2"这个路径,
同理请求metadata时也是一样:(TODO)

获取数据:

1 oModel.getData("/Customer('ALFKI')");
2 oModel.getProperty("/Customer('ALFKI')/Address");
var oData = {
    ProductId: 999,
    ProductName: "myProduct"
}

//POST
oModel.create("/Products", oData, {success: mySuccessHandler, error: myErrorHandler});

//GET
oModel.read("/Products(999)", {success: mySuccessHandler, error: myErrorHandler});

//PUT
var oData = {
    ProductId: 999,
    ProductName: "myProductUpdated"
}
oModel.update("/Products(999)", oData, {success: mySuccessHandler, error: myErrorHandler});

//DELETE
oModel.delete("/Products(999)", {success: mySuccessHandler, error: myErrorHandler});

更改完成后OModel会自动refresh

oModel.setRefreshAfterChange(false); //关闭自动刷新

TODO

 





 

3. XML Model

 

转载于:https://www.cnblogs.com/jerrylu/p/4433031.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值