UI5中的单向和一次绑定之间的区别

问题描述 投票:1回答:1

UI5中的一次性绑定和单向绑定有什么区别?

是否有任何用户特定的用例我将使用它们?我无法从文档中获得太多信息。

data-binding sapui5
1个回答
4
投票

Data binding modes in UI5

One-way

  • 它的作用:单向数据流。模型数据的变化(例如,通过setProperty)稳定地传播到UI中的感兴趣元素。
  • 用例:一个突出的例子是device model(单向JSONModel)。它不应接受任何可能意外更新设备信息的用户输入。 我们必须将绑定模式设置为OneWay,因为设备模型是只读的,我们希望在将控件的属性绑定到它时避免意外更改模型。默认情况下,OpenUI5中的模型是双向的(TwoWay)。属性更改时,绑定的模型值也会更新。

One-time

  • 它的作用:一次性数据流。在评估绑定对象时,会读取其对应的模型数据并将其写入元素属性一次,而不再重复。
  • 它为什么存在:这一切都归结为变革听众的数量。较少的侦听器意味着更少的内存分配和更少的运行时维护的东西。因此,与其他绑定模式相比,绑定模式OneTime具有优化性能和存储器消耗的潜力。
  • 何时使用:用于静态,非变异数据。
  • 用例:这里的突出例子是ResourceModel。它的默认绑定模式是OneTime(也支持OneWay,但仅在异步的情况下)。 i18n资源只读一次,不会更新。这同样适用于ODataMetaModel: 此模型是只读的,因此仅支持OneTime绑定模式。没有事件被解雇!

分配绑定模式

  • 具体绑定: <Text text="{ path: '...', mode: 'OneTime' }"/>
  • 对于模型的所有绑定对象: myModel.setDefaultBindingMode("OneTime"); 或者在ODataModel的情况下(在app descriptor中): "sap.ui5": { "models": { "myODataModel": { "dataSource": "...", "settings": { "defaultBindingMode": "TwoWay" } } } }
  • expression binding中,可以使用以下语法定义绑定模式: 一次性:{:= ...} 单向:{= ...}
© www.soinside.com 2019 - 2024. All rights reserved.