可以说我在JavaScript中有以下代码:
var temp = Controller.extend("sap.ui.demo.wt.controller.App", {
onInit: function() {
// set data model on view
var myoData = {
recipient: {
name: "World"
}
};
var oModel = new JSONModel(myoData);
this.getView().setModel(oModel);
// set i18n model on view
var i18nModel = new ResourceModel({
bundleName: "sap.ui.demo.wt.i18n.i18n"
});
this.getView().setModel(i18nModel, "i18n");
},
createBtn: function(text) {
var btn = new sap.m.Button({
text: text,
press: function() {
sap.m.MessageToast.show(this.getText() + ' is clicked');
var oModel = new JSONModel("resources/products.json");
//** how to call onInit from here ? **
}
}).addStyleClass('sapUiSizeCompact');
return btn;
}
});
我写了一个事件按下按钮,如前所述。
我如何在按下事件时调用onInit函数?
这样的东西。
谢谢!
最佳答案
有几种可能性。我将列出(imo)最常见的。
1.绑定
press: (function (oEvent) {
// now this refers to your controller, not the sender
sap.m.MessageToast.show(oEvent.getSource().getText() + ' is clicked');
var oModel = new JSONModel("resources/products.json");
this.onInit();
}).bind(this)
2.那个
createBtn: function (text) {
var that = this;
var btn = new sap.m.Button({
text: text,
press: function (){
// this is still the sender, that is the controller
sap.m.MessageToast.show(this.getText() + ' is clicked');
var oModel = new JSONModel("resources/products.json");
that.onInit()
}
}).addStyleClass('sapUiSizeCompact');
return btn;
}
关于javascript - openui5,Java脚本-嵌套此关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35547686/