Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sapui5 如何在没有oEvent的情况下调用方法_Sapui5 - Fatal编程技术网

Sapui5 如何在没有oEvent的情况下调用方法

Sapui5 如何在没有oEvent的情况下调用方法,sapui5,Sapui5,如何从控制器的方法调用事件处理程序 BtnTap:功能(oEvent){ 控制台日志(“按钮点击”); }, doSomething:function(){ BtnTap(); }, 我希望从控制器中的另一个函数调用相同的BtnTap()。 似乎不可能从另一个函数访问oEvent。直接调用事件处理程序并不是那么优雅。也许您可以将事件处理程序中的逻辑提取到另一个函数 BtnTap: function(oEvent) { console.log("Button Tap");

如何从控制器的方法调用事件处理程序


BtnTap:功能(oEvent){
控制台日志(“按钮点击”);
},
doSomething:function(){
BtnTap();
},
我希望从控制器中的另一个函数调用相同的
BtnTap()


似乎不可能从另一个函数访问
oEvent

直接调用事件处理程序并不是那么优雅。也许您可以将事件处理程序中的逻辑提取到另一个函数

BtnTap: function(oEvent) {    
    console.log("Button Tap");
    this.btnTapHelper();
}

btnTapHelper: function() {
    //logic here
}

doSomething : function() {
    this.btnTapHelper();
}

我通常会说,您通过事件总线在控制器之间进行通信。因此,您将在直接控制器中捕获tap事件,并提交另一个事件,然后在另一个控制器中捕获该事件

用于捕获事件的控制器具有以下功能:

sap.ui.getCore().getEventBus().subscribe('submitSomething', eventID, this.reactToSomething, this);
发射器的点击方式如下:

eventBus.publish('submitTmpData', eventID);
前面提到的捕获控制器的事件处理程序如下所示

reactToSomething: function(type, eventid){
        ...
    },
您还可以将自定义数据添加到事件中

干杯 Michael

可能重复的