在 Master-Detail-Application 中使用 hasPendingChanges 方法

Use method hasPendingChanges in Master-Detail-Application

我正在使用 ODataModel 开发 master/detail SAPUI5 示例。 主列表中的每个选择都会将每个 ID 的绑定路径更新到详细信息视图。我的应用程序的用户应该能够根据主列表选择更改详细信息页面上显示的信息(也称为更改模型)。

我想在用户从主列表项目 A 切换到项目 B 并且项目 A 的详细信息已更改时发出警报。

因此,我打算使用 "hasPendingChanges" 方法。 通话时

this.getView().getBindingContext().getModel()

我意识到这个方法return是同一个模型。 拥有 JAVA 背景,我期待获得当前详细视图的模型。 (模型!不是对象...)

如果当前详细信息模型已更改,我想知道是否有一种方法可以检查每个主列表选择。

我找到了 问题,但在那种情况下,这个人正在寻找对象,而在我的情况下,我正在寻找模型,所以我可以 return hasPendingChanges()。

您必须区分模型和应用程序数据。该模型(在本例中为 ODataModel)公开了通过 OData 服务检索和修改应用程序数据的功能。应用程序数据代表您的服务实体数据模型所定义的实体。

理想情况下,应用程序中的所有视图都共享同一个模型实例,这意味着:

this.getView().getModel()

应该return 主控制器和细节控制器中的同一个实例。该模型包含主视图中显示的(部分)实体集以及通过选择主列表中的条目已加载到详细视图中的特定实体。如果您更改详细信息视图中的实体,这些更改将由模型收集。

因此,无需调用 hasPendingChanges 在您的应用中的某处检查更改是否已应用并且尚未发送到 OData 服务。