从ObjectListItem绑定时路由问题

2020-09-23 07:38发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好,

从master.view.xml导航到details.view.xml时出现fiori/sapui5问题。 一切正常,但是我不得不更改我提取数据的方式,但现在它坏了。 它似乎与被绑定在控制器中的ObjectListItem有关(即当它断开时)。 有点棘手的解释,也许代码会更好。

我的master.controller.js通过将路径和模板绑定到master.view.xml上的ObjectListItem进行初始化。

 onInit:function(){
 var masterList = this.getView()。byId(" masterList");
 var itemTemplate = new sap.m.ObjectListItem({
 标题:" {ProspectName}",
 类型:"有效",
 数字:" {部分:[{path:'ExpectedSalesVolume'},
 {path:'CurrencyCode'}],键入:" sap.ui.model.type.Currency",
 formatOptions:{showMeasure:false}}",
 按:this.GoToDetail,
 firstStatus:new sap.m.ObjectStatus({
 文字:" {UserStatusText}",
 状态:" {部分:[{path:'UserStatusText'}]",
 格式化程序:'。formatter.statusColor'}"
 }),
 属性:[new sap.m.ObjectAttribute({
               文字:" {说明}"
         }),新的sap.m.ObjectAttribute({
               文字:"到期日:{路径:'ClosingDate',
               类型:" sap.ui.model.type.Date",
               formatOptions:{style:'long'}}"
         }]]
 });


 masterList.bindAggregation(
 "项目",{
 路径:"/机会",
 过滤器:[new Filter(" BelongingTo",FilterOperator.EQ," 1")],
 模板:itemTemplate
 });
 },
 

这很好,我的master.view.xml上只有一个 ,并且可以正确填充。

当我单击某个项目时运行该应用程序时,它可以正确识别该项目。 但是,当使用路由进行导航时,总是出现未定义的情况。

这是用于导航的master.controller.js,非常标准。

 GoToDetail:function(oEvent){
 var sItem = oEvent.getSource()。getBindingContext()。getProperty(" Guid");
 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
 oRouter.navTo(" r_detail",{引导:sItem});
 },
 

我已经尝试过sap.ui.core.UIComponent.getRouterFor(whatever);的任何变体; 返回未定义。

在此先感谢您提供任何提示。 如果在此期间发现问题,我将发布答案。

格雷格

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好,

从master.view.xml导航到details.view.xml时出现fiori/sapui5问题。 一切正常,但是我不得不更改我提取数据的方式,但现在它坏了。 它似乎与被绑定在控制器中的ObjectListItem有关(即当它断开时)。 有点棘手的解释,也许代码会更好。

我的master.controller.js通过将路径和模板绑定到master.view.xml上的ObjectListItem进行初始化。

 onInit:function(){
 var masterList = this.getView()。byId(" masterList");
 var itemTemplate = new sap.m.ObjectListItem({
 标题:" {ProspectName}",
 类型:"有效",
 数字:" {部分:[{path:'ExpectedSalesVolume'},
 {path:'CurrencyCode'}],键入:" sap.ui.model.type.Currency",
 formatOptions:{showMeasure:false}}",
 按:this.GoToDetail,
 firstStatus:new sap.m.ObjectStatus({
 文字:" {UserStatusText}",
 状态:" {部分:[{path:'UserStatusText'}]",
 格式化程序:'。formatter.statusColor'}"
 }),
 属性:[new sap.m.ObjectAttribute({
               文字:" {说明}"
         }),新的sap.m.ObjectAttribute({
               文字:"到期日:{路径:'ClosingDate',
               类型:" sap.ui.model.type.Date",
               formatOptions:{style:'long'}}"
         }]]
 });


 masterList.bindAggregation(
 "项目",{
 路径:"/机会",
 过滤器:[new Filter(" BelongingTo",FilterOperator.EQ," 1")],
 模板:itemTemplate
 });
 },
 

这很好,我的master.view.xml上只有一个 ,并且可以正确填充。

当我单击某个项目时运行该应用程序时,它可以正确识别该项目。 但是,当使用路由进行导航时,总是出现未定义的情况。

这是用于导航的master.controller.js,非常标准。

 GoToDetail:function(oEvent){
 var sItem = oEvent.getSource()。getBindingContext()。getProperty(" Guid");
 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
 oRouter.navTo(" r_detail",{引导:sItem});
 },
 

我已经尝试过sap.ui.core.UIComponent.getRouterFor(whatever);的任何变体; 返回未定义。

在此先感谢您提供任何提示。 如果在此期间发现问题,我将发布答案。

格雷格

付费偷看设置
发送
2条回答
宇峰科技
1楼 · 2020-09-23 08:27.采纳回答
按:[this.GoToDetail,this] 
昵称总是被占用
2楼-- · 2020-09-23 08:22

发生在我们所有人身上! 哈哈...。你太接近这个问题了。

一周热门 更多>