刷新页面时,动态创建的视图无法重新加载。

2020-09-04 21:01发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我要求从服务返回的x...

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

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


专家们,

我要求从服务返回的xml字符串动态生成视图,并允许将数据绑定到该视图。 我能够使用sap.ui.core.mvc.XMLView.create方法创建视图,并能够通过使用以下代码行将视图添加到路由器的目标中来进行导航:

 sap.ui.core.mvc.XMLView.create({
 定义:this.viewString,
 类型:sap.ui.core.mvc.ViewType.XML
 })。then(function(oView){
 var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
 var oTargets = oRouter.getTargets();


 oTargets.getViews()。setView(" com.sampleapp.SampleApp.view.View2",oView);

//oTargets.display("Dynamic");
 oRouter.navTo(" DynamicView");


 }
 

现在,我可以单击view2的控制器,并且绑定也可以正常工作,但是一旦刷新页面,错误就会出现。 据我了解,这是因为当路由器尝试加载与路由模式相对应的视图时,但由于它是通过xml字符串创建的,因此它不存在于文件夹结构中。

我的问题是:可以避免这样的错误吗? 我的意思是能够在刷新时加载页面?

感谢您的帮助。

(26.9 kB)
5条回答
My梦
2020-09-04 21:59
< p>您好Jun

我不明白。

view1正在从服务中加载xml字符串,该服务又会生成view2的内容。

完成后,我将导航到代码中显示的动态创建的view(view2)。

如果我要放一个空视图,那么在重新加载时会出现错误(该视图未返回任何数据)。

要加载view2的内容(现在已经导航到该视图),我必须调用已经在view1的控制器中调用的服务。

如果我将view2链接到view1的控制器,则在重新加载时会遇到相同的错误(该视图未返回任何数据)。

如果我要将view2的控制器更改为仅用于view2的新控制器,那么我需要再次调用该服务并使用Create方法来生成另一个视图,因为该服务正在返回包含视图控件的xml。 因此要显示它,我再次需要导航到相同的路由(view2的路由),这再次导致相同的问题(该视图没有返回任何数据)。

我不确定如何解决此问题,在这种情况下,您的建议似乎无效。

一周热门 更多>