SAP UI5工作清单,路由和上下文绑定以及详细视图数据访问

2020-09-17 00:08发布

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

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


尊敬的UI5专家,一个有关SAP UI5工作清单应用程序的问题。

在SAP UI5 SDK联机帮助和多个UI5 SCN线程中,已讨论了将所选主视图条目的绑定上下文移动到详细视图的问题。

主从,工作清单...
这些FIORI平面图可与路由器逻辑一起使用。 使用SAP WEB IDE作为工作清单,将生成详细信息的导航。

这总是以详细视图/控制器中的以下代码结尾:

onInit:函数(){
this.getRouter()。getRoute(" object")。attachPatternMatched(this._onObjectMatched,this);
...
}; _onObjectMatched:函数(oEvent){

var sObjectId = oEvent.getParameter(" arguments")。objectId;
this.getModel()。metadataLoaded()。then(function(){
var sObjectPath = this.getModel()。createKey(" MyMessageSet",{Guid:sObjectId});
this._bindView("/" + sObjectPath);
} .bind(this));
} ;

我的要求是从实际(在选定的主视图中)上下文中提取一个特定的数据列(" Guid")。 我想在this.getRouter()之后的onInit方法中执行此操作...我做了以下代码:

var bindingContext = this.getView()。getBindingContext();
var sObjectGuid = bindingContext.getProperty(" Guid");

问题
========

Chrome调试器因第二条语句而崩溃:
"未捕获(承诺)TypeError:无法读取未定义的属性'getProperty'"

" bindingContext"的监视点:
bindingContext:<不可用>

如何简单地拾取所选(主视图)数据条目的列值?
为什么this.getView()。getBindingContext()...不起作用?

我也尝试使用this.getView()。getBindingContext(" MyModelName");
不起作用...

预先感谢
克劳斯·韦格纳

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

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


尊敬的UI5专家,一个有关SAP UI5工作清单应用程序的问题。

在SAP UI5 SDK联机帮助和多个UI5 SCN线程中,已讨论了将所选主视图条目的绑定上下文移动到详细视图的问题。

主从,工作清单...
这些FIORI平面图可与路由器逻辑一起使用。 使用SAP WEB IDE作为工作清单,将生成详细信息的导航。

这总是以详细视图/控制器中的以下代码结尾:

onInit:函数(){
this.getRouter()。getRoute(" object")。attachPatternMatched(this._onObjectMatched,this);
...
}; _onObjectMatched:函数(oEvent){

var sObjectId = oEvent.getParameter(" arguments")。objectId;
this.getModel()。metadataLoaded()。then(function(){
var sObjectPath = this.getModel()。createKey(" MyMessageSet",{Guid:sObjectId});
this._bindView("/" + sObjectPath);
} .bind(this));
} ;

我的要求是从实际(在选定的主视图中)上下文中提取一个特定的数据列(" Guid")。 我想在this.getRouter()之后的onInit方法中执行此操作...我做了以下代码:

var bindingContext = this.getView()。getBindingContext();
var sObjectGuid = bindingContext.getProperty(" Guid");

问题
========

Chrome调试器因第二条语句而崩溃:
"未捕获(承诺)TypeError:无法读取未定义的属性'getProperty'"

" bindingContext"的监视点:
bindingContext:<不可用>

如何简单地拾取所选(主视图)数据条目的列值?
为什么this.getView()。getBindingContext()...不起作用?

我也尝试使用this.getView()。getBindingContext(" MyModelName");
不起作用...

预先感谢
克劳斯·韦格纳

付费偷看设置
发送
2条回答
哎,真难
1楼 · 2020-09-17 00:36.采纳回答

你好

我认为在事件onInit上,该模型仍未初始化,因此您无法获得绑定上下文。

尝试一下:

 onInit:function(){
 this.getView()。addEventDelegate({
 onBeforeFirstShow:function(){
                   //这里
 }
 });
 },
 

尝试执行此操作,否则请尝试执行控制器的onBeforeRendering主事件。

如果没有,我们可以检查更深的错误:)

派大星 ヾ
2楼-- · 2020-09-17 00:33

是的,似乎在经典的UI5生命周期挂钩期间,访问上下文绑定是一个问题 我做的方式。 我有一个"图标"选项卡栏,以获取更多详细信息,并且需要数据主GUID才能访问更多数据。 使用选项卡栏中的事件处理程序可以访问与母版相关的绑定上下文。

我现在有一个关于过滤器的其他问题,但这与我的问题无关。

谢谢您的提示!
克劳斯·韦格纳(Klaus Wegener)

一周热门 更多>