在SAP UI 5中加载带有名称的模型

时间:2016-06-30 22:12:34

标签: sap sapui5

我正在尝试将模型加载到视图中。当我没有给出模型的任何名称时,我能够加载模型,如: -

sap.ui.getCore().byId("mao").setModel(oModel);

但如果我给出如下所示的模型,则不会设置模型。我也没有收到任何错误

sap.ui.getCore().byId("mao").setModel(oModel,"myModel");

我正在使用加载数据来加载我的数据

    var oModel = new sap.ui.model.json.JSONModel();
    oModel.loadData(servicePath);
    sap.ui.getCore().byId("mao").setModel(oModel);

5 个答案:

答案 0 :(得分:1)

试试这个:

var oModel = new sap.ui.model.json.JSONModel();
oModel.loadData(servicePath);

var oController = this;

oModel.attachRequestCompleted(function() {
     var data = oModel.getData();
     oController.getView().setModel(data, "namedModel");
});

然后你可以这样打电话:

this.getView().getModel("namedModel");

答案 1 :(得分:0)

还应针对命名模型绑定调整视图中的绑定路径。详情请见 在documentaion关于绑定路径。

答案 2 :(得分:0)

将模型设置为视图的最佳方法是在Component.js文件中定义它们,或者如果您使用的是1.33及更高版本,则在manifest.json文件中定义模型。

  • 在Component.js文件中设置模型: 定义模型init方法,如下所示:

    sap.ui.define(['jquery.sap.global', 'sap/ui/core/UIComponent'],
    function(jQuery, UIComponent) {
    "use strict";
    
    var Component = UIComponent.extend("samples.components.sample.Component", {
    metadata : {
    }
    init: function() {
       var sServiceUrl = 'example/servie';
       var oModel = new sap.ui.model.odata.ODataModel (sServiceUrl, true);
       this.setModel (oModel, "modelName");
    }
    });
    return Component;
    });
    
  • 在manifest.json文件中设置模型 https://openui5.hana.ondemand.com/#docs/guide/be0cf40f61184b358b5faedaec98b2da.html

现在,此模型可在任何控制器中使用,您可以按如下所述访问模型:

  var oModel = this.getView().getModel("modelName");

答案 3 :(得分:0)

this._sValidPath =jQuery.sap.getModulePath("OpenUI.c", "/name.pdf"); this._oModel = new JSONModel({ Source: this._sValidPath, Title: "My Custom Title", Height: "600px" }); sap.ui.getCore().setModel(this._oModel,"mainModel2");

答案 4 :(得分:-1)

  

sap.ui.getCore()byId("茂&#34)。则setModel(oModel);

     

但如果我给出如下所示的模型,则不会设置模型。

您没有将此绑定到将其绑定到核心的View。 删除.byId(" mao")它应该可以工作。

var oModel = new sap.ui.model.json.JSONModel();
oModel.loadData(servicePath);
sap.ui.getCore().setModel(oModel, "myModelName");

阅读模型:

var oMyModel = sap.ui.getCore().getModel("myModelName");

sap.ui.getCore()。byId(" mao")。setModel(" myModel")表示你想通过ID获得一个对象" mao&# 34;并为对象分配模型。

这是视图绑定的工作方式:

this.getView().setModel(oModel, "myModelName");
var oMyModel = this.getView().getModel("myModelName");

在OpenUI5网站上有一个很好的开发人员演练,请查看: https://openui5beta.hana.ondemand.com/#docs/guide/70ef981d350a495b940640801701c409.html