gpt4 book ai didi

event-handling - SAPUI5:如何在 ODataModel 更改的情况下获取事件通知?

转载 作者:行者123 更新时间:2023-12-04 03:51:19 24 4
gpt4 key购买 nike

我正在搜索如果 ODataModel(在客户端)将被更改将引发的事件。
问题是,在我的应用程序中有许多不同的字段可以编辑模型。
在模型更改的情况下,我将注册一个启用“保存”按钮的功能。
“保存”按钮将调用模型的 submitChanges()(我使用 TwoWayBinding 模式)。

目前我只检测到“hasPendingChanges()”方法,但没有我可以注册的事件。

处理此问题的建议解决方案是什么?

处理每个“输入”控件中的更改看起来不是一个好方法,因为很容易忘记某些字段(至少如果其他人会维护代码)。

我当前的解决方案现在看起来与此类似:

sap.ui.model.odata.ODataModel.extend("MyModel", {
setProperty : function(sPath, oValue, oContext) {
sap.ui.model.odata.ODataModel.prototype.setProperty.apply(this, [sPath, oValue, oContext]);
// do something here
}
});

最佳答案

您可以使用 sap.ui.model.Binding.attachChange()

var binding = new sap.ui.model.Binding(model, "/", model.getContext("/"));
binding.attachChange(function() {
saveButton.setVisible(true);
saveButton.setEnabled(true);
//or anything else
});

每次模型更改时都会调用该函数,例如。调用 model.setProperty(key, value) .

https://openui5.netweaver.ondemand.com/#docs/api/symbols/sap.ui.model.Binding.html

关于event-handling - SAPUI5:如何在 ODataModel 更改的情况下获取事件通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26799066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com