gpt4 book ai didi

parameter-passing - SAP UI5 - 如何为 Controller 传递值?

转载 作者:行者123 更新时间:2023-12-04 09:02:06 25 4
gpt4 key购买 nike

我想在按下按钮时将值从 View 传递到 Controller 。在 View 中传递的是一个对象 productJson。但我无法在 Controller 中检索该值。请帮忙。

查看js:

 new sap.m.Button({
text: "Add to Cart",
press:[oController.addtoCartBtnPress,oController,productJson],
})

Controller js:

 addtoCartBtnPress:function(e,oView,productJson)
{
}

结果:

oView and productJson values are returned as undefined.

最佳答案

数据应该是 press 数组中的第一个值。根据 SDK docs对于 sap.m.Button:

press : fnListenerFunction or [fnListenerFunction, oListenerObject] or [oData, fnListenerFunction, oListenerObject]

监听器函数应该有 2 个参数:1-事件;和 2- 数据。

onPressFn: function(evt, data) { ... }

要获取 View ,只需使用:

var view = this.getView();
  • “this”将等于您在 press 数组中作为第三个值传递的任何值,并且通常应该是 Controller 以匹配 xml/html View 的行为。

在新闻发布会中传递数据的另一种方法是使用 View 模型绑定(bind),尤其是当您已经在 View 的其他地方使用该模型绑定(bind)时。但这取决于您拥有的产品数量和其他因素,因此我不会假设它是您的理想选择。

//in the view
var productModel = new sap.ui.model.json.JSONModel(productJson);
view.setModel(productModel, "product");

//in the controller:
var data = view.getModel("product").getData();

关于parameter-passing - SAP UI5 - 如何为 Controller 传递值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20853514/

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