我有一个像这样的MenuItem:
new sap.ui.unified.MenuItem({
text: "ID",
submenu: new sap.ui.unified.Menu({
items: [this.oIdMenuButton = new sap.ui.unified.MenuItem({
text: "IDs anzeigen/ausblenden",
icon: "resources/images/check.png",
select: this._onShowHideIdRequest
})]
})
})
像这样的EventListener:
_onShowHideIdRequest: function (oControlEvent) {
}
此代码位于组件内部。现在出现的问题是:我无法访问组件本身。因为当我调用this.
时,我访问了触发事件的MenuItem。如何访问此EventListener方法之外的方法?我知道有sap.ui.getCore().byId(id)
但通常我不知道我的组件的ID。而且我也无法存储id,因为我无法访问EventHandler中的id。
答案 0 :(得分:1)
使用这行代码修改对_onShowHideIdRequest
的调用,它将允许访问Component。
this._onShowHideIdRequest.bind(this);
答案 1 :(得分:0)
您可以将大量参数传递给select
[1]
// a function that will be called
function
// same as above
[ function ]
// the function will be called, value of this is the context-object
[ function, context ]
// the function will be called, the value of this is the context-object, the data will be passed to the function as argument
[ data, function, object ]
示例:
var ctx = {foo: "bar"};
new MenuItem({
select: [
function () {
console.log(this.foo);
}, ctx
]
});
应该会导致记录" bar"