Sapui5 具有绑定属性的控件没有';t在UI中显示模型数据
我正在将我的应用程序迁移到新版本的OpenUI5(1.48),但在模型绑定方面遇到了一些问题。我正在使用Sapui5 具有绑定属性的控件没有';t在UI中显示模型数据,sapui5,Sapui5,我正在将我的应用程序迁移到新版本的OpenUI5(1.48),但在模型绑定方面遇到了一些问题。我正在使用sap.ui.getCore().setModel(oModel,“myModel”)进行模型声明,当我试图将一些控件绑定到此模型中的值时,如下所示 。。。该值不显示 但如果我得到这个模型,把它设置成控制器中的视图 var-oModel=sap.ui.getCore().getModel(“本地”); this.getView().setModel(oModel); 。。。一切都会好
sap.ui.getCore().setModel(oModel,“myModel”)
进行模型声明,当我试图将一些控件绑定到此模型中的值时,如下所示
。。。该值不显示
但如果我得到这个模型,把它设置成控制器中的视图
var-oModel=sap.ui.getCore().getModel(“本地”);
this.getView().setModel(oModel);
。。。一切都会好的。
可能有人遇到了类似的问题,或者知道我的代码有什么问题?我认为问题可能在于如何创建JSON模型强>, 试试这个。 控制器
sap.ui.define(["sap/ui/core/mvc/Controller",
"sap/ui/model/json/JSONModel",],
function(Controller,JSONModel) {
"use strict";
return Controller.extend("com.stackoverflow.testUI5", {
onInit:function(){
var oData = {
count:"1"
};
var oModel = new JSONModel(oData);
sap.ui.getCore().setModel(oModel , "local")
//this.getView().setModel(oModel ,"local");
}
});
});
XML视图
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<mvc:View controllerName="com.stackoverflow.testUI5"
xmlns:mvc="sap.ui.core.mvc"
xmlns:core="sap.ui.core" xmlns="sap.m" >
<Text text="{local>/count}"/>
</mvc:View>
此代码段将起作用。您必须在应用程序中使用
组件。在这种情况下,核心模型不会自动传播到ComponentContainer
的子级,这就是为什么Text
控件不知道模型“local”
“{/count}”
之所以有效,是因为您在视图上显式设置了模型,而没有任何模型名称。如果模型没有名称,则它是默认模型,必须在绑定路径中省略
要了解有关在何处设置模型的更多信息,请查看我对类似问题的回答:请不要建议在核心上设置模型。这是一个不幸的反模式,从一开始就应该避免。