SAPUI5:如何从同一控制器中的另一个函数调用函数

SAPUI5:如何从同一控制器中的另一个函数调用函数,sapui5,Sapui5,我不能从同一控制器的另一个函数调用函数。 控制器中的内容: checkData: function(){ if(//check the data here before submitting it to the server){ //display error message if the data is not ok } else{ //call the function that submits data - submitData

我不能从同一控制器的另一个函数调用函数。 控制器中的内容:

checkData: function(){
    if(//check the data here before submitting it to the server){
        //display error message if the data is not ok
    }
    else{
        //call the function that submits data - submitData
    }
},

submitData: function(){
    //make ajax call here
}
如何从checkData函数的
else
块中调用submitData函数

编辑: 以下是上述2个功能的完整代码: 您只需要使用“this”符号。像这样:

checkData: function(){
    if(//check the data here before submitting it to the server){
        //display error message if the data is not ok
    }
    else{
        //call the function that submits data - submitData
        this.submitData();
    }
},

submitData: function(){
    //make ajax call here
}
如果在事件函数中调用了checkData函数,则“this”表示触发事件的组件,而不是控制器。 在这种情况下,可以使用以下语法调用submitData函数:

var oController = sap.ui.getCore().byId("your-view-name").getController();
oController.submitData();

希望这能有所帮助。

在发布此问题之前,我已经尝试过了。我得到
未捕获类型错误:未定义不是一个函数
。这是否意味着我在
submitData
函数语法方面有问题?您可以添加完整的控制器代码以供查看吗?问题是您试图从事件访问此代码,假设它将实际返回,在事件处理函数的上下文中,这是导致事件的组件。解决这个问题的一个方法是使用sap.ui.getCore().byId(“您的控制器名称”).submitData()。抱歉,这是正确的语法:sap.ui.getCore().byId(“您的视图名称”).getController().submitData()。抱歉,我没有完全理解您的问题。然而,只有在事件函数的实现中或在事件函数调用的函数内部时,才需要使用此语法。在这些函数中,“this”表示触发事件的组件,而不是控制器。希望这能回答你的问题。