Sapui5 JavaScript视图中的事件绑定是否正确?此绑定与XML视图不同

Sapui5 JavaScript视图中的事件绑定是否正确?此绑定与XML视图不同,sapui5,Sapui5,在《SAPUI5开发人员指南》中,我找到了关于处理事件的说明: 在XML视图中处理事件。事件处理程序用作属性。属性名称是事件名称,例如按钮的“按下”,属性值是事件处理程序名称。事件处理程序必须定义为视图控制器中的函数。要在XML视图中附加事件处理程序,请插入以下声明:。。。按下按钮时执行方法controller.doSomething() 在我的XML视图中,我可以将其转换为: <Select change="doSomething"> 是否以错误的方式绑定事件处理程序?如果通过X

在《SAPUI5开发人员指南》中,我找到了关于处理事件的说明:

在XML视图中处理事件。事件处理程序用作属性。属性名称是事件名称,例如按钮的“按下”,属性值是事件处理程序名称。事件处理程序必须定义为视图控制器中的函数。要在XML视图中附加事件处理程序,请插入以下声明:<代码>。。。按下按钮时执行方法
controller.doSomething()

在我的XML视图中,我可以将其转换为:

<Select change="doSomething">

是否以错误的方式绑定事件处理程序?

如果通过XML视图或HTML视图调用它,则此事件方法的上下文就是控制器。在JS视图中,上下文是控件本身。这意味着您必须使用
jQuery.proxy()调用它,如下所示:

newsap.m.Select({change:jQuery.proxy(oController.doSomething,oController)})

这样,
oController
就是您的方法上下文。但是我认为,您也可以使用方法
addEventDelegate()
。有关更多信息,请参见SAPUI5文档:

在JS视图中,当您指定如下处理程序时:

新建sap.m.按钮({
文字:“按我”,
按:oController.myHandler
})
然后,
绑定到处理程序中的控件本身

但还有另一种方法可以指定处理程序,如下所示:

新建sap.m.按钮({
文字:“按我”,
按:[oController.myHandler,oController]
})
其中数组中的第二个元素成为此
绑定的对象

我补充说