我想在按下按钮时将值从视图传递给控制器。在视图中传递productJson这是一个对象。但是我无法在控制器中检索该值。请帮助。
查看js:
new sap.m.Button({
text: "Add to Cart",
press:[oController.addtoCartBtnPress,oController,productJson],
})
控制器js:
addtoCartBtnPress:function(e,oView,productJson)
{
}
结果:
oView and productJson values are returned as undefined.
答案 0 :(得分:9)
数据应该是印刷机数组中的第一个值。根据sap.m.Button的sdk docs:
按:fnListenerFunction或[fnListenerFunction,oListenerObject]或 [oData,fnListenerFunction,oListenerObject]
监听器函数应该有2个参数:1 - 事件;和2-数据。
onPressFn: function(evt, data) { ... }
要获得视图,只需使用:
var view = this.getView();
在印刷机调用中传递数据的另一种方法是使用视图模型绑定,特别是如果您已经在视图中的其他位置使用该模型绑定。但这取决于你有多少产品和其他因素,所以我不认为它对你的情况是理想的。
//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();