我试图借助视图中提供的输入来更新json模型中的数据

2020-09-26 02:02发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我试图借助视图中提供的输入来更新...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我试图借助视图中提供的输入来更新json模型中的数据,但我无法这样做,我想知道是否有可能这样做,如果可以,请为我提供解决方案

 我试图在视图中以两种不同的方法加载我的json模型,但是该模型正在一个地方加载,而在其他地方,它向我显示了未定义的内容,并且在调试时没有数据
 onSubmit()中的var oModel是未定义的,并且push也存在一些问题

 我想对json数据执行更新操作,当我按保存按钮时,它应该在json模型中得到更新
 这是我的控制器
 sap.ui.define([
 " sap/ui/core/mvc/Controller"
 ],函数(控制器){
 "使用严格";


 返回Controller.extend(" workeLibrary.controller.Details",{
 onInit:function(){
//var oModel = new sap.ui.model.json.JSONModel(jQuery.sap.getModulePath(" workeLibrary.model","/books.json"));;
//this.getView()。setModel(oModel);
 var oModel = new sap.ui.model.json.JSONModel(" model/books.json");
 this.getView()。setModel(oModel," oModelBookdata");


//var oModel = new sap.ui.model.json.JSONModel(" model/books.json");


 this.getOwnerComponent()。getRouter()。getRoute(" Details")。attachPatternMatched(this._onRouteMatched,this);
 },
 onAfterRendering:function(){


 },
 _onRouteMatched:function(oEvent){
 var oArgs,oView;
 oArgs = oEvent.getParameter(" arguments")。productId;
 oView = this.getView();
 var xyz = this.getView()。getModel();
 oView.bindElement({
 路径:"/img/Books/" + oArgs,
 型号:" oModelBookdata"
 });
 oView.updateBindings();
 },
 onSubmit:function(){
 var Subm = this.getView()。byId(" Subm")。getText();
 var oModel = new sap.ui.model.json.JSONModel(" model/books.json");
 this.getView()。setModel(oModel," oModeldata");
 var eBooks = oModel.getProperty("/img/Books");
 var eName = this.getView()。byId(" name")。getValue();
 var eAuth = this.getView()。byId(" auth")。getValue();
 var eSeri = this.getView()。byId(" seri")。getValue();
 var eSequ = this.getView()。byId(" sequ")。getValue();
 var eGenr = this.getView()。byId(" genr")。getValue();
 var eInst = this.getView()。byId(" instk")。getValue();
 var eCat = this.getView()。byId(" cat")。getValue();
 var ePric = this.getView()。byId(" pric")。getValue();
 var ePage = this.getView()。byId(" page")。getValue();


 如果(Subm ==="保存"){


 var objBook = {


 "猫": "",


 "名称": "",


 " author":"",


 " series_t":"",


 " sequence_i":"",


 " genre_s":"",


 "有现货": "",


 "价钱": "",


 " pages_i":""


 };


 objBook.at = eCat;


 objBook.name = eName;


 objBook.author = eAuth;


 objBook.series_t = eSeri;


 objBook.sequence_i = eSequ;


 objBook.genre_s = eGenr;


 objBook.inStock = eInst;


 objBook.price = ePric;


 objBook.pages_i = ePage;


 eBooks.push(objBook);


 oModel.setProperty("/img/Books",eBooks);
 }否则,如果(Subm ===" Edit"){
 this.getView()。byId(" name")。setEditable(true);
 this.getView()。byId(" cat")。setEditable(true);
 this.getView()。byId(" auth")。setEditable(true);
 this.getView()。byId(" seri")。setEditable(true);
 this.getView()。byId(" genr")。setEditable(true);
 this.getView()。byId(" sequ")。setEditable(true);
 this.getView()。byId(" instk")。setEditable(true);
 this.getView()。byId(" pric")。setEditable(true);
 this.getView()。byId(" page")。setEditable(true);
 this.getView()。byId(" Subm")。setText(" Save");


 }


 },


//_on] RouteMatched:function(oEvent){
//var productId = oEvent.getParameter(" arguments")。productId;
//this.getView()。bindElement("/img/products/" + productId);
//},
 handleNavButtonPress:function(){
 this.getOwnerComponent()。getRouter()。navTo(" List");
 }


 });
 });
 这是我的看法



 
 
 <页面>
 
 <内容>
 
 
 
 
 
 <页脚>
 <栏>
 
 
2条回答
浮生未央
2020-09-26 02:08

嗨,

绝对可以根据视图中提供的输入来更新JSON模型。

在控制器的onInit方法中,您已经使用以下方法在视图上设置了模型:

 this.getView()。setModel(oModel," oModelBookdata"); 

现在,在Submit方法中,您可以通过以下方式获取此模型:

 var oModel = this.getView()。getModel(" oModelBookdata"); 

并使用setProperty方法更新模型数据:

 oModel.setProperty("/img/",); 

一周热门 更多>