gpt4 book ai didi

controller - this.getView() 不工作 - SAPUI5

转载 作者:行者123 更新时间:2023-12-04 00:11:11 27 4
gpt4 key购买 nike

我已经多次尝试在我的 Controller 上使用 this.getView(),但我总是在我的控制台上收到 getView is not a function 错误。

是否有任何“技巧”或我可以做的事情来完成这项工作?

这是我如何使用它的示例(这是我在 Controller 中创建的函数):

formatIconStatus: function(status){
var view = this.getView();
if (status != null){
if (status == "YES"){
status = "sap-icon://accept";
}else{
status = "sap-icon://error";
}
return status;
}
},

提前致谢!

最佳答案

是的,有。如果您在格式化程序函数和事件监听器中使用 JSView this 指向它所属的控件。对于格式化程序函数,您可以像本例中那样通过分配函数来更改它:

new sap.m.Button({
text : {
path : "/buttonText",
formatter : $.proxy(oController.myTextFormatter, oController);
}
});

jQuery.proxy的帮助下您可以将 myTextFormatter 中的 this 设置为 oController。这允许您在格式化程序中调用 this.getView(),因为 this 现在将指向 Controller 。

为了设置事件监听器的范围,您可以按照上面所示的相同方式分配函数,也可以使用框架提供的不同方法,如下例所示:

new sap.m.Button({
press : [oController.myPressHandler, oController]
});

使用此表示法,框架将以数组的第二个条目作为范围调用事件监听器 (myPressHandler)。

此模式适用于跨 UI5 框架的大多数事件监听器。基本上,您在分配事件监听器时有三种选择:

  • fnListenerFunction
  • [fnListenerFunction, oListenerScope]
  • [oData, fnListenerFunction, oListenerScope]

使用 XMLViews,您不必手动设置范围,因为它默认设置为关联的 Controller 。

关于controller - this.getView() 不工作 - SAPUI5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31860712/

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