UI5中的一次性绑定和单向绑定有什么区别?
是否有任何用户特定的用例我会使用它们? 我无法从文档中获得太多信息。
答案 0 :(得分:4)
setProperty
)会稳定地传播到UI中感兴趣的元素。用例:一个突出的例子是device model(单向JSONModel)。它不应该接受任何可能意外更新设备信息的用户输入。
我们必须将绑定模式设置为
OneWay
,因为设备模型是只读的,我们希望在将控件的属性绑定到它时避免意外更改模型。默认情况下,OpenUI5中的模型是双向的(TwoWay
)。当属性更改时,绑定的模型值也会更新。
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中,可以使用以下语法定义绑定模式:
一次性:{:= ...}
单向:{= ...}