尽管已导入sap/m/MessageToast,但MessageToast.show不是函数。

2020-09-23 12:34发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好, 我想在sapui5应用...

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

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


你好,

我想在sapui5应用程序中显示消息程序,当打印onSave或启动init函数时。 但我总是在控制台中出错,messageToast无法正常工作。

控制台中的错误消息:

未捕获(承诺)TypeError:MessageToast.show不是函数

这是我的controller.js:

 sap.ui.define(['sap/ui/core/mvc/Controller',
 'timeTrackertimeTracker/controller/BaseController',
 'sap/ui/model/json/JSONModel',
 " sap/m/MessageToast",
 " sap/ui/model/odata/ODataModel",
 " sap/ui/core/routing/History"
 ],




     函数(控制器,BaseController,MessageToast,JSONModel,ODataModel,历史记录){
     "使用严格";


    //全局变量
    //var _oController,oModel,oView;
     var Calendarcontroller = BaseController.extend(" timeTrackertimeTracker.controller.Calendarform",{
    
/* ================================================  ========== */
/*生命周期方法*/
/* ================================================  ========== */


    
 onInit:function(){
//存储控制器对全局变量的引用
 this.getRouter()。getRoute(" Calendarform")。attachPatternMatched(this._onRouteMatched,this);
 MessageToast.show(" init");
 },




/* ================================================  ========== */
/*事件处理程序*/
/* ================================================  ========== */

 _onRouteMatched:function(){
//注册元数据加载事件
 var oModel = this.getModel(" appointments");
 oModel.metadataLoaded()。then(this._onMetadataLoaded.bind(this));
 },

 _onMetadataLoaded:函数(){
//创建默认属性
 var oProperties = {
 ID:" Id" + parseInt(Math.random()* 1000000000)
/*持续时间:"",
 休息时间: "",
 标题:"",
 开始时间: "",
 时间结束: "",
 说明:"" */
 };


//在模型中创建新条目
 this._oContext = this.getModel(" appointments")。createEntry("/img/appointments",{
 属性:oProperties
 ,
 成功:this._onCreateSuccess.bind(this)
 });


//将视图绑定到新条目
 this.getView()。setBindingContext(this._oContext," appointments");





 },

 onSave:function(oEvent){

          
//将视图绑定到新条目
//this.getView().setBindingContext(this._oContext);


 this.getModel(" appointments")。submitChanges();

 },

 _onCreateSuccess:函数(oEvent){
//导航到新产品的对象视图
 this.getRouter()。navTo(" AppointmentsList",true);

//取消绑定视图以不再显示该对象
 this.getView()。unbindObject();

//显示成功消息
/* var sMessage = this.getResourceBundle()。getText(" newObjectCreated",[oEvent.Id]);
 MessageToast.show(sMessage,{
 closeOnBrowserNavigation:false
 }); */
 },



/* _onCreateSuccess:函数(oAppointment){
//显示成功消息
 var sMessage = this.getResourceBundle()。getText(" newObjectCreated",[oAppointment.Title]);
 MessageToast.show(sMessage,{
 closeOnBrowserNavigation:false
 });
 },
 */


 onCancel:function(){
 this.onNavBack();
//this.getView().getModel("appointments").deleteCreatedEntry(this._oContext);
 },


/**
 *用于返回的事件处理程序。
 *检查是否有历史记录条目。 如果是,history.go(-1)将发生。
 *否则,它将用工作清单路由替换浏览器历史记录的当前条目。
 * @上市
 */
 onNavBack:function(){


/* var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
 oRouter.navTo(" AppointmentsList"); */


 var oHistory = History.getInstance(),
 sPreviousHash = oHistory.getPreviousHash();


//从模型中丢弃新产品。
 this.getModel(" appointments")。deleteCreatedEntry(this._oContext);


 如果(sPreviousHash!==未定义){
//历史记录包含上一个条目
 history.go(-1);
 }其他{
//否则我们将向前追溯历史
 var bReplace = true;
 this.getRouter()。navTo(" AppointmentsList",{},bReplace);
 }
 }


     });
     
     返回Calendarcontroller;
     
     });
 
2条回答
Cikesha
2020-09-23 13:03

您好,

请更改您的控制器的定义:

功能(控制器,BaseController,JSONModel,MessageToast,ODataModel,历史记录)
有效,谢谢!

一周热门 更多>