在OpenUI5 demokit 的1.5.2.3定义绑定路径部分中:
在聚合绑定的情况下,对于聚合的每个条目都存在上下文,或者可以使用setBindingContext方法为控件显式设置上下文.
在OpenUI5 demokit的1.5.3.3元素绑定部分中:
元素绑定允许将元素绑定到模型数据中的特定对象,这将创建绑定上下文并允许控件及其所有子元素之间的相对绑定.
在我看来,这两种技术实际上做同样的事情.它们都为控件创建绑定上下文,以便包含控件的绑定将相对于它进行解析.但它们之间的区别是什么?在什么情况下他们中的任何一个会发挥作用?
该setBindingContext不会在下面的代码工作:
https://jsbin.com/bigope/edit?html,output
但是,如果我改变oPanel.setBindingContext("/ nameinfo"); to oPanel.bindElement("/ nameinfo"); ,它有效,为什么?
setBindingContext
要求你传递这样的上下文:
oPanel.setBindingContext(new sap.ui.model.Context(oModel, "/nameinfo"));
Run Code Online (Sandbox Code Playgroud)
这两者之间的区别是概念性的.绑定上下文用作该Control或其子项中所有绑定(对于该模型)的父上下文.它只包含对使用的模型的引用,(路径的一部分)和可选的另一个父上下文.在创建相对绑定时使用它.
bindElement
另一方面,该方法的行为与其他所有bind*方法相同.它创建了一个绑定(在本例中为a ContextBinding
),它允许更改事件,数据绑定等.此外,创建的ContextBinding
也可以作为其他绑定的BindingContext,就像添加了setBindingContext的Context一样.
根本没有混淆,对吧?)?
读取ManagedObject的代码可能有助于您更好地理解内部.(bindObject = bindElement)
归档时间: |
|
查看次数: |
9564 次 |
最近记录: |