【发布时间】:2023-03-11 22:07:01
【问题描述】:
在这个很棒的问题中:How to Implement DOM Data Binding in JavaScript 许多数据绑定实现细节都得到了很好的解释。
还有很多探索博客关于Angular中的脏检查,Vue.js中使用的Object.defineProperty和虚拟DOM等等……
但是在UI5 docs中,只有如何使用数据绑定。没有关于如何实现数据绑定的详细信息。
我已阅读有关 sap.ui.base.ManagedObject 和 source code of it 的文档 .在constructor of sap.ui.base.ManagedObject 中,它说这些对象与数据绑定有关,但我不知道如何。有时我会将它们注销以调试我的数据绑定,但仍然没有大局:
// data binding
this.oModels = {};
this.aPropagationListeners = [];
this.oBindingContexts = {};
this.mElementBindingContexts = {};
this.mBindingInfos = {};
this.mObjectBindingInfos = {};
也输在ManagedObject.prototype.bindObject。
我真的希望了解当数据模型发生变化时,Dom 是如何更新的,反之亦然。
【问题讨论】:
-
一点信息:Handlebars.js 框架被纳入 SAP UI5 用于数据绑定。
-
如果只是为了调试,也许UI5 chrome扩展可以帮上忙。它会将页面上的元素显示为 UI5 元素而不是 HTML 元素,并且会显示这些元素上的绑定。在这里找到它:chrome.google.com/webstore/detail/ui5-inspector/…
-
@Jorg,是的,我知道,UI5 diagnostics,但我想知道的是实现细节。
-
谢谢@santhosh,我在sap.ui.thirdparty找到了,我会深入研究一下。
-
可能搜索 Handlebars.compile。
标签: javascript data-binding sapui5