我正在尝试将模型加载到视图中。当我没有给出模型的任何名称时,我能够加载模型,如: -
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);
答案 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