来自odata的getView读取成功处理程序

2020-09-23 07:27发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 对不起,我的英语:) ...

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

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


你好

对不起,我的英语:)

我有一个带有可加载视图/控制器的组件的应用

在控制器初始化和其他方法中,我需要从服务器加载odata(读取odata),但是在成功处理程序中,我无法获得将新数据绑定到特定控件模型的视图。

我可以使用sap.ui.getCore()。byId('__ xmlview0--companies')通过完全ID直接执行完全操作(例如'__xmlview0--companies')的任何操作,这是' 正确的方法,我想直接获得控制权

如果我在成功读取函数中使用this.getView(),则" this"不是控制器,而是odataModel对象。

如果这可以帮助您

root.view.xml:

 <输入id =" companies" showSuggestion =" true" showValueHelp =" true"/> 

root.controller.js

 sap.ui.define([
   " sap/ui/core/mvc/Controller",
   " sap/ui/core/format/NumberFormat"
 ],函数(控制器,NumberFormat){
   "使用严格";
   return Controller.extend(" AppName.controller.root",{
     onInit:函数(){
       var myOdataModel = new sap.ui.model.odata.ODataModel('/mock/',true);
       myOdataModel.read('COMPANY',null,null,false,function(inutile,json){
 var data = json.data.results;
 datas.companies =数据;
 var model = new sap.ui.model.json.JSONModel();
 model.setData(datas.companies);
 var companiesInput = this.getView()。byId('companies');
 companiesInput.setModel(model);
       }); 

Component.js:

 sap.ui.define([
   " sap/ui/core/UIComponent",
   " sap/ui/设备"
 ],函数(UIComponent,设备){
   "使用严格";
   返回UIComponent.extend(" AppName.Component",{
     元数据:{
       清单:" json"
     },
     初始化:函数(){
       UIComponent.prototype.init.apply(this,arguments);
     }
   });
 }); 
1条回答
渐行渐远_HoldOn
2020-09-23 08:29 .采纳回答
 sap.ui.define([" sap/ui/core/mvc/Controller"," sap/ui/core/format/NumberFormat"],function(Controller,NumberFormat){" use strict";返回控制器。  extend(" AppName.controller.root",{
     onInit:function(){

 var that = this;
       var myOdataModel = newsap.ui.model.odata.ODataModel('/mock/',true);
       myOdataModel.read('COMPANY',null,null,false,function(inutile,json){
 var data = json.data.results;
 datas.companies =数据;
 var model = newsap.ui.model.json.JSONModel();
 model.setData(datas.companies);
 var companiesInput = that.getView()。byId('companies');
 companiesInput.setModel(model);}); 

一周热门 更多>