我一直在思考上下文,上下文绑定和绑定上下文的内部和关系,现在我已经有几天了,我不确定在我这边是否有一个主要的误解。也许你们中的一些人可以帮我整理一下。我正在把我的假设放在下面。我可能想首先说我总是在这里使用oData模型。ui5中的绑定,上下文,上下文绑定和绑定上下文
这是什么,我相信理解阅读文档:
一个背景是在模型中的数据对象的引用。
甲结合基本上一个事件提供器,其(在单向结合时)观察到特定的上下文的状态,并且当它被改变/数据加载发射事件...并因此允许用于登记事件处理程序针对该特定情况下的事件。在编程对象方面,有属性绑定和列表绑定(这是真的 - 或是列表绑定所有相关的?)。无论如何,我的理解是,列表绑定是组件的聚合绑定的模型端,而属性绑定既是从组件的角度来看,也是从模型的角度来看(混淆?)。
现在我不太得到的是: 上下文结合new sap.ui.model.ContextBinding(oModel, sPath, oContext, mParameters?, oEvents?):
采取的路径和参数的背景。我假设这个oContext不完全是上面描述的上下文,而是绑定上的一些元数据。它是否正确?或者这是路径参数相对于路径的定义?
什么也似乎很奇怪是当你想创建一个上下文本身new sap.ui.model.Contextabov(oModel, sPath, oContext)
再次采用上下文。 我相信这只是我所看到的一个不幸的命名事物,但我不太确定。
然后是contextbinding和bindingcontext。我假设contextBinding是如上所述的对特定上下文的绑定。绑定上下文是关于上下文绑定或列表绑定的元数据。
从编程的角度来看,我不明白为什么了以下工作:
- 创建列表,经由
model.bindList()
只传递一个路径结合上下文。 - 附着变更事件处理程序结合
- 呼叫
get_contexts()
上结合 - 接收change事件处理数据(和看到的OData属性填入的型号)。
而且似乎没有做同样的绑定属性,它我会承担我可以通过model.bindProperty()
产生的方式。我可以生成绑定,但我收到的绑定似乎没有处理实际获取数据。
我希望漫步解释我的问题。如果你问:你想做什么?我其实不想做任何事情,我只是不太明白这是如何工作的。绑定到UI控件等工作得很好,但我更愿意真正理解底层的东西。我一直在阅读调试文件和单元测试,但与你们讨论它似乎也是一个好方法。
如果不清楚,我会很乐意添加任何有用的东西。
干杯 米歇尔