从 sapui5 中的新闻处理程序内部调用控制器函数
Calling Controller Function from inside a press handler in sapui5
我想过滤 ButtonPress 上的 table 并设置 Table + 3 个其他按钮可见。我的愿望是在控制器中执行此操作,但我似乎找不到在事件处理程序中调用控制器函数的方法。
按钮:
var searchButton = new sap.ui.commons.Button({
text: 'Partner suchen',
width: "100%",
press: function(oEvent) {
var myInput = sap.ui.getCore().byId('Handler').getValue(); //$('.row input[role="textbox"]:enabled').val();
var query = oEvent.getParameter("query");
var listBinding = oTable2.getBinding();
var oFilter = new sap.ui.model.Filter ("nummer", sap.ui.model.FilterOperator.EQ, myInput);
listBinding.filter([oFilter]);
//[oController.enablen, oController]
//sap.ui.getCore().byId('vertL2').setVisible(true);
//sap.ui.getCore().byId(this.createId('anlegBut')).setEnabled(true);
//sap.ui.getCore().byId(this.createId('editBut')).setEnabled(true);
//sap.ui.getCore().byId(this.createId('submitBut')).setEnabled(true);
}
});
在我的控制器中,我有一个我想调用的函数:
enablen : function () {
var view = this.getView();
sap.ui.getCore().byId('vertL2').setVisible(true);
view.byId('anlegBut').setEnabled(true);
view.byId('editBut').setEnabled(true);
view.byId('submitBut').setEnabled(true);
}
但在按钮的事件处理程序中调用它似乎是不可能的。
解决这个问题的方法是(在再次查看 API 之后):
var searchButton = new sap.ui.commons.Button({
text: 'Partner suchen',
width: "100%",
press: /*[oController.enablen, oController]*/ [function(oEvent) {
var myInput = sap.ui.getCore().byId('Handler').getValue(); //$('.row input[role="textbox"]:enabled').val();
var query = oEvent.getParameter("query");
var listBinding = oTable2.getBinding();
var oFilter = new sap.ui.model.Filter ("nummer", sap.ui.model.FilterOperator.EQ, myInput);
listBinding.filter([oFilter]);
this.enablen();
}, oController]
});
我想过滤 ButtonPress 上的 table 并设置 Table + 3 个其他按钮可见。我的愿望是在控制器中执行此操作,但我似乎找不到在事件处理程序中调用控制器函数的方法。
按钮:
var searchButton = new sap.ui.commons.Button({
text: 'Partner suchen',
width: "100%",
press: function(oEvent) {
var myInput = sap.ui.getCore().byId('Handler').getValue(); //$('.row input[role="textbox"]:enabled').val();
var query = oEvent.getParameter("query");
var listBinding = oTable2.getBinding();
var oFilter = new sap.ui.model.Filter ("nummer", sap.ui.model.FilterOperator.EQ, myInput);
listBinding.filter([oFilter]);
//[oController.enablen, oController]
//sap.ui.getCore().byId('vertL2').setVisible(true);
//sap.ui.getCore().byId(this.createId('anlegBut')).setEnabled(true);
//sap.ui.getCore().byId(this.createId('editBut')).setEnabled(true);
//sap.ui.getCore().byId(this.createId('submitBut')).setEnabled(true);
}
});
在我的控制器中,我有一个我想调用的函数:
enablen : function () {
var view = this.getView();
sap.ui.getCore().byId('vertL2').setVisible(true);
view.byId('anlegBut').setEnabled(true);
view.byId('editBut').setEnabled(true);
view.byId('submitBut').setEnabled(true);
}
但在按钮的事件处理程序中调用它似乎是不可能的。
解决这个问题的方法是(在再次查看 API 之后):
var searchButton = new sap.ui.commons.Button({
text: 'Partner suchen',
width: "100%",
press: /*[oController.enablen, oController]*/ [function(oEvent) {
var myInput = sap.ui.getCore().byId('Handler').getValue(); //$('.row input[role="textbox"]:enabled').val();
var query = oEvent.getParameter("query");
var listBinding = oTable2.getBinding();
var oFilter = new sap.ui.model.Filter ("nummer", sap.ui.model.FilterOperator.EQ, myInput);
listBinding.filter([oFilter]);
this.enablen();
}, oController]
});