【问题标题】:Error in SAPUI5 routing / binding with 1.18 SDK example: SplitAppSAPUI5 路由/绑定与 1.18 SDK 示例出错:SplitApp
【发布时间】:2014-02-20 06:15:37
【问题描述】:

在测试随 1.18.5 SAPUI5 SDK 提供的 SplitApp 演示应用时,路由和模型绑定之间似乎存在冲突。如果您导航到详细信息页面,然后刷新浏览器窗口,则数据绑定将失败。这就像您在特定视图上为应用添加书签一样。

只是想知道是否有人知道这是为什么?是否与路由和数据绑定冲突?我的调试没有显示任何内容,只是在详细视图加载时模型为空。

此应用使用新的基于组件的路由器,您可以在其中在组件元数据中定义路由。

我还在这里js1972/test · GitHub (branch "routes") 编写了一个小型测试应用程序,它的功能相似并且存在相同的问题。

【问题讨论】:

  • 我安装了你的代码并遇到了同样的问题,将假 sinon 服务换成services.odata.org/V3/Northwind/Northwind.svc 并且刷新和书签都很好用
  • 嗨,约翰,这是一个有趣的发现。我刚刚做了同样的事情,并且在使用远程北风服务时它确实有效。在我最初看到 no_data 的地方有一个延迟,然后它会填充(异步和所有这些)。所以看起来只有模型中的本地数据存在问题。 UI5 SDK 演示应用使用本地数据源,因此它们也会失败。

标签: sapui5


【解决方案1】:

以下书签适用于虚假服务 ../test-routes/#/detail/Categories(2)

../test-routes/#/detail/Categories(3) 没有

ODataModelFakeService.js 中的 request.onSend 并不能满足所有场景

另一种方法可能是使用 sap.ui.core.util.MockServer 与类别和产品实体的缩减 metadata.xml 和 json 文件

【讨论】:

  • 谢谢约翰。它是那些先有鸡还是先有蛋的场景之一。根据我们之前的调查,我在我的 Windows PC 上工作时遇到了 Northwind 的问题,因此需要模拟服务。现在路由和绑定的组合不适用于模拟服务,但它确实适用。
  • 那里仍然存在一个错误 - 查看 SDK 提供的所有使用路由或历史记录的演示应用程序 - 它们都因相同的问题而失败。
  • 尝试使用 Northwind 模拟服务的 MockServer 出现问题,让产品计数获得 NaN,但产品扩展工作
  • 我在这里接受您的回答 - 总而言之 - Northwind 只是一个狡猾的服务。它似乎有 DNS 问题,在我的 Windows PC 上无法正常工作,但在 Mac 上很好。如果您使用 UI5 提供的模拟 odata 服务,它复制了 Northwind 服务,它不会处理您提到的所有功能,所以也不是 100%。所以我只是构建了自己的 json 数据集进行测试,现在它 100% 工作很好。
【解决方案2】:

我遇到了同样的问题,只想分享我的发现和解决方案:

详细视图等待主视图中的列表加载。如果您使用的服务很慢,则列表已经完成加载,但模型尚未完成加载,因此详细视图返回错误。 为了解决这个问题,我为模型附加了一个“requestCompleted”事件,并为模型创建了一个 jQuery.Deferred 对象。 然后 master 等待模型的解析。

oModel.attachEvent("requestCompleted", 
 			function() {
 						this.oModelFinishedDeferred.resolve();
 						this.getEventBus().publish("Model",
 						"ModelFinished");}
			, this);

【讨论】:

    猜你喜欢
    • 2016-05-20
    • 2018-06-04
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    相关资源
    最近更新 更多