In the 1.5.2.3 定义绑定路径OpenUI5 demokit 部分:
在聚合绑定的情况下,聚合的每个条目都存在上下文,或者可以使用 setBindingContext 方法为控件显式设置上下文。
In the 1.5.3.3 元素绑定OpenUI5 demokit 部分:
元素绑定允许将元素绑定到模型数据中的特定对象,这将创建绑定上下文并允许控件及其所有子项内的相对绑定。
在我看来,这两种技术实际上做了同样的事情。它们都为控件创建绑定上下文,以便包含控件的绑定将相对于它进行解析。但它们之间有什么区别呢?它们会在什么情况下发挥作用?
The 设置绑定上下文在以下代码中不起作用:
https://jsbin.com/bigope/edit?html,输出
但是,如果我改变oPanel.setBindingContext("/nameinfo"); to oPanel.bindElement("/nameinfo");,它有效,为什么?
setBindingContext
要求您传递这样的 Context:
oPanel.setBindingContext(new sap.ui.model.Context(oModel, "/nameinfo"));
这两者之间的区别是概念性的。
绑定上下文用作该 Control 或其子项中所有绑定(针对该模型)的父上下文。它仅保存对所使用的模型、路径(的一部分)和可选的另一个父上下文的引用。它在创建相对绑定时使用。
The bindElement
另一方面,方法的行为与其他所有 bind* 方法类似。
它创建一个绑定(在本例中是一个ContextBinding
) 允许更改事件、数据绑定等。
另外创建的ContextBinding
还充当其他绑定的 BindingContext,就像使用 setBindingContext 添加的 Context 所做的那样。
一点也不混乱,对吧;)?
阅读代码管理对象可能会帮助您更好地了解内部结构。 (绑定对象 = 绑定元素)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)