gpt4 book ai didi

sapui5 - JavaScript View 中的正确事件绑定(bind)?与 XML View 不同的 this 绑定(bind)

转载 作者:行者123 更新时间:2023-12-04 13:39:44 26 4
gpt4 key购买 nike

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

Handling Events in XML Views. Event handlers are used as attributes. The attribute name is the event name, such as "press" for a button, and the attribute value as event handler name. The event handler must be defined as a function in the view's controller. To attach an event handler in a XML view, insert the following declaration: ... <Button text="Press Me" press="doSomething"/> ... The method controller.doSomething() is executed when the button is pressed.



在我的 XML View 中,我可以将其转换为:
<Select change="doSomething">

当 select 的值发生变化时,调用 controller.selectOnChange 函数,并将 «this 参数绑定(bind)到 Controller 本身»。但是,当我在 JavaScript View 中绑定(bind)此事件处理程序时,«this 参数已绑定(bind)到选择元素»。

我假设这会转化为我的 JavaScript View 的以下代码:

new sap.m.Select({ change : oController.doSomething })

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

最佳答案

在 JS View 中,当您指定这样的处理程序时:

new sap.m.Button({
text: "Press Me",
press: oController.myHandler
})

然后 this在处理程序中绑定(bind)到控件本身。

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

new sap.m.Button({
text: "Press Me",
press: [oController.myHandler, oController]
})

其中数组中的第二个元素变为 this势必会。

我添加了 an example with a JS view and controller to sapui5bin's SinglePageExamples .

关于sapui5 - JavaScript View 中的正确事件绑定(bind)?与 XML View 不同的 this 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21528745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com