gpt4 book ai didi

data-binding - UI5中单向绑定(bind)和一次性绑定(bind)的区别

转载 作者:行者123 更新时间:2023-12-04 05:28:57 30 4
gpt4 key购买 nike

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

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

最佳答案

Data binding modes in UI5
单程

  • 它的作用:单向数据流。模型数据的变化(例如通过 setProperty )稳定地传播到 UI 中感兴趣的元素。
  • 用例:一个突出的例子是 device model (一种单向 JSONModel)。它不应该接受任何可能意外更新设备信息的用户输入。

    We have to set the binding mode to OneWay as the device model is read-only and we want to avoid changing the model accidentally when we bind properties of a control to it. By default, models in OpenUI5 are bidirectional (TwoWay). When the property changes, the bound model value is updated as well.



  • 一度
  • 它的作用:一次性数据流。当绑定(bind)对象被求值时,其对应的模型数据被一次读取并写入元素属性,并且永远不会再次。
  • 为什么存在:这一切都归结为更改监听器的数量。更少的监听器意味着更少的内存分配和更少的运行时需要维护的东西。绑定(bind)方式OneTime因此,与其他绑定(bind)模式相比,它具有优化性能和内存消耗的潜力。
  • 何时使用:用于静态、非变异数据。
    注意:对于属性绑定(bind), oBindingInfo.value (since 1.61)也可以为静态值定义,而不是依赖于属性绑定(bind)中的模型。
  • 用例:这里突出的例子是 ODataMetaModel .从它的 API 引用:

    This model is read-only and thus only supports OneTime binding mode. No events are fired!



  • 如需更多信息,请参阅 documentation topic "Data Binding" .

    在 UI5 中分配绑定(bind)模式
  • 特定于绑定(bind):

    <Text text="{ path: '...', mode: 'OneTime' }"/>
  • 对于模型的所有绑定(bind):
    myModel.setDefaultBindingMode("OneTime");
    或在 app descriptor如果是 ODataModel :

    {
    "sap.ui5": {
    "models": {
    "myODataModel": {
    "dataSource": "...",
    "settings": {
    "defaultBindingMode": "TwoWay"
    },

    "preload": true
    }
    }
    }
    }
  • Expression Binding ,绑定(bind)模式可以使用以下语法定义:
  • myProperty="{:= ...}" ⇒ 一次性
  • myProperty="{= ...}" ⇒ 单程

  • 定制 formatter在绑定(bind)信息中(例如 <Text text="{ ..., formatter: '.createText' }"> )以及带有字符串文字的组合(例如 "My Name is {/name}" )强制绑定(bind)变为 单向 .使用 type in order to keep the binding two-way .
  • 关于data-binding - UI5中单向绑定(bind)和一次性绑定(bind)的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50649965/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com