主要明细模板
单击Master[list]
时,它将导航到包含表格数据的详细信息页面,假设有四列,最后一列中有“添加”按钮。
现在我想要的是,点击“添加”按钮,行数据将直接在购物车视图中绑定。
我尝试使用本地存储,但如何在购物车视图中调用本地存储数据。
Cart view is on Master page with icon
On click cart icon view page is this
onPress: function(evt){
localStorage.setItem('user', JSON.stringify({
a : evt.oSource.oParent.mAggregations.cells[0].mProperties.src,
b : evt.oSource.oParent.mAggregations.cells[1].mProperties.text,
c : evt.oSource.oParent.mAggregations.cells[2].mProperties.text,
d : evt.oSource.oParent.mAggregations.cells[3].mProperties.text
}));
user = JSON.parse(localStorage.getItem('user'));
}
答案 0 :(得分:0)
我假设您使用的是UI5路由器和ODataModel,它位于基于组件的应用程序中。服务。
您只需通过路由将表条目的ID传递到详细信息视图:
onAddBtnPressed : function(oEv) {
var oRouter = sap.ui.core.UIComponent.getRouterFor(this),
oContext = oEv.getSource().getBindingContext("your-model-name"),
sDetailID = oContext.get("your-id-prop-name");
oRouter.navTo("detail", {
detailID: sDetailID
})
}
来自routing.config.routes:
{
"pattern": "detail/{detailID}",
"name": "detail",
"target": "detail"
}
注意:{param}
将参数标记为必填参数,而:param:
用于可选参数。
在你的Detail.controller.js中注册一个routePatternMatched上的监听器,并按如下方式实现它:
onRoutePatternMatched: function(oEv) {
var sDetailID = oEv.getParameter("arguments").detailID;
// create binding context on detail view
this.getView().bindElement({
"/YourDetailSet('"+ sDetailID +'")"
model: "your-model-name"
})
// all the bindings in your detail view will no be relative to the above binding context.
}