Sapui5 如何在sapui中将控件绑定到json模型
为什么我不能使用这些Sapui5 如何在sapui中将控件绑定到json模型,sapui5,Sapui5,为什么我不能使用这些sap.ui.getCore().setModel(oModel)和 其他函数中的.getView().setModel(“oModel”、“someModel”) 超过sapui5中控制器的生命周期挂钩 我正在尝试将模型绑定到视图的控件,而不给出它 一个id。所以我想制作一个模型,并将该模型设置为 我会绑起来的 JavaScript视图中的处理程序上下文 jQuery.sap.require(“sap.m.MessageToast”); sap.ui.jsview(“l
sap.ui.getCore().setModel(oModel)和
其他函数中的.getView().setModel(“oModel”、“someModel”)
超过sapui5中控制器的生命周期挂钩
我正在尝试将模型绑定到视图的控件,而不给出它
一个id。所以我想制作一个模型,并将该模型设置为
我会绑起来的
JavaScript视图中的处理程序上下文
jQuery.sap.require(“sap.m.MessageToast”);
sap.ui.jsview(“local.view”{
getControllerName:函数(){
返回“local.controller”;
},
createContent:函数(oController){
var oText=新的sap.m.Text();
bindProperty(“text”,“oModel>/myData”);
var oInput=new sap.m.Input();
bindValue(“oModel>/myData”);
var oIn=new sap.m.Input();
oIn.bindValue(“oModel>/myData”);
var oBar=newsap.m.Bar({contentLeft:oIn,contentMiddle:oText});
var oButton=new sap.m.Button({text:“按下重置”,
按:函数(){
oController.resetModel();
}
});
var oPage=new sap.m.Page({headerContent:[oInput],footer:oBar,showNavButton:true,content:[oButton]});
var oShell=new sap.m.App({pages:oPage});
返回奥谢尔;
}
});
sap.ui.controller(“local.controller”{
onInit:function(){
var aData={“myData”:“enter!!”};
var oModel=new sap.ui.model.json.JSONModel();
oModel.setData(aData);
setModel(oModel,“oModel”);
},
resetModel:function(){
var-oModel=sap.ui.getCore().getModel(“oModel”);
oModel.oData.myData=“重置”;
}
});
sap.ui.view({
类型:sap.ui.core.mvc.ViewType.JS,
视图名称:“local.view”
}).placeAt(“uiArea”);
您在这里问了很多问题,让我来详细解释一下
sap.ui.getCore().setModel(oModel)
时会遇到什么问题,但是对于this.getView().setModel(“oModel”,“someModel”)
我可以说@fabiopagoti评论了什么,您可能在错误的上下文中使用了它。
这是一个例子
onInit:function()
{
/*“this”指此处的控制器,
*/
var-oController=this;
myOwnFunction:function()
{
/*“this”现在指的是“onInit”中的作用域
因此,这个.getView().setModel()将无法工作。
oController.getView().setModel()将起作用*/
}
}
var-ovinable代码>
宣布为,
this.ovinable代码>
在controller.js中需要访问它的任何地方(在控制器的上下文中)访问变量,如下所示:
this.getView().ovinable代码>
resetModel:function()
{
var-oModel=sap.ui.getCore().getModel(“oModel”);
oModel.setProperty(“/myData”,“Reset”);
}
setProperty文档是您在这里提出了很多问题,所以让我将其细分
sap.ui.getCore().setModel(oModel)
时会遇到什么问题,但是对于this.getView().setModel(“oModel”,“someModel”)
我可以说@fabiopagoti评论了什么,您可能在错误的上下文中使用了它。
这是一个例子
onInit:function()
{
/*“this”指此处的控制器,
*/
var-oController=this;
myOwnFunction:function()
{
/*“this”现在指的是“onInit”中的作用域
因此,这个.getView().setModel()将无法工作。
oController.getView().setModel()将起作用*/
}
}
var-ovinable代码>
宣布为,
this.ovinable代码>
在controller.js中需要访问它的任何地方(在控制器的上下文中)访问变量,如下所示:
this.getView().ovinable代码>
resetModel:function()
{
var-oModel=sap.ui.getCore().getModel(“oModel”);
oModel.setProperty(“/myData”,“Reset”);
}
setProperty文档不正确,您的模型更新不正确 记住,永远不要使用内部
.oData.=代码>,但始终使用:
.setProperty(“,)
。
这样,您将绝对确定您的模型将使用新值进行更新
将resetModel方法更改为
resetModel:function(){
var oModel=sap.ui.getCore().getModel("oModel");
oModel.setProperty("/myData", "Reset");
}
如果您不正确地更新模型,它将起作用
记住,永远不要在中使用