Sapui5 在主详细信息应用程序中使用方法hasPendingChanges

Sapui5 在主详细信息应用程序中使用方法hasPendingChanges,sapui5,model-binding,master-detail,Sapui5,Model Binding,Master Detail,我正在使用ODataModel编写一个主/细节SAPUI5示例。 主列表中的每个选择都在更新每个ID到详细信息视图的绑定路径。我的应用程序的用户应该能够根据主列表选择更改出现在详细信息页面上的信息(也称为更改型号) 我想在用户将从主列表项目A切换到项目B并且项目A的详细信息已更改时发出警报 因此,我计划使用“hasPendingChanges”方法。 打电话的时候 this.getView().getBindingContext().getModel() 我意识到这个方法返回相同的模型。 有J

我正在使用ODataModel编写一个主/细节SAPUI5示例。 主列表中的每个选择都在更新每个ID到详细信息视图的绑定路径。我的应用程序的用户应该能够根据主列表选择更改出现在详细信息页面上的信息(也称为更改型号)

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

因此,我计划使用“hasPendingChanges”方法。 打电话的时候

this.getView().getBindingContext().getModel()
我意识到这个方法返回相同的模型。 有JAVA背景,我希望得到当前细节视图的模型。(模型!不是对象…)

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


我发现了一个问题,但在这种情况下,这家伙在寻找对象,而在我的情况下,我在寻找模型,以便返回hasPendingChanges()。

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

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

this.getView().getModel()
应该在主控器和细节控制器中返回相同的实例。该模型包含主视图中显示的(部分)实体集,以及通过选择主列表中的条目在详细视图中加载的特定实体。如果在详图视图中更改图元,这些更改将由模型收集

因此,可以在应用程序中的某个位置调用
hasPendingChanges
,检查更改是否已应用且尚未发送到OData服务