云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

CDN_托福网课百度云_排行榜

小七 141 0

CDN_托福网课百度云_排行榜

第1部分–UI5模块延迟加载机制

第2部分–控件呈现程序

第3部分–Html本机事件与UI5语义事件

第4部分–控件元数据

第5部分–控件实例数据–如何实现setXXX和getXXX

第6部分–引擎盖下的控件数据绑定

第7部分–本博客

第8部分–控件ID

第9部分–控件国际化支持

第10部分-XML视图中的按钮控件

第11部分-按钮控件及其底层DOM

在之前的博客中,

我们了解了控件数据绑定的工作原理。在调试期间,我们在源代码中发现有三种支持的绑定模式:单向、双向和一次性。那么在我们的示例中,在下面的一行中到底使用哪种绑定模式呢?

执行oButton1.bindProperty("text","/field_for_text")后

何时何地确定绑定模式,我们可以在调试器中发现使用了"双向"模式:

它是在我们在上一个博客中调试的函数bindProperty()中填充的。

这个默认值是在模型的构造函数中填充的:

双向绑定是如何工作的

为了测试双向绑定模式,我在我的示例应用程序下面添加了一行新行。

在第24行中,Button的text属性绑定到具有绑定模型"TwoWay"的模型字段"field\u for \u text"。顾名思义,在第26行,我将button text属性改为"change via JS",因此我希望模型字段"field\u for\u text"的值也会自动更改。

这种自动同步的原因实际上也在之前的博客中调试过。在那个博客里,我们知道调用函数setXXX()时,绑定模型字段的值也会在第29711行更新:

在这个函数中,第31453行有一个IF求值,一元云购下载,确保模型字段只能在双向模式下同步。在31457行,什么是淘客,用新的属性值调用绑定实例的setExternalValue函数

在这个函数中,调用了JSONPropertyBinding的setValue函数

然后更改了Model的绑定字段

单向绑定是如何工作的

如果我通过下面的代码显式指定绑定模式为"单向":

那么在我通过setText()函数更改按钮文本属性,连接的模型字段将不会更改,因为下面的31453行签入无法成功。

一次绑定如何工作

在SAP development guide链接中,此模式解释为"从模型绑定到视图一次"。我第一次读了这句话之后,还是没弄明白它的意思。因此,我首先通过下面的测试代码测试"双向"绑定。

在第24行中,我将文本属性绑定到模型字段"field\u for\u text"。

在第26行中,我更改了模型绑定字段,第27行刷新了模型。最后在UI中,我得到一个文本为"Tom"的按钮。

如果我将第24行的绑定模式从"TwoWay"更改为"OneTime",那么我得到一个文本为"Jerry"的按钮。

首先我调试TwoWay是如何工作的。诀窍在第27行函数checkUpdate()。

在这个函数中,存储在JSON模型中的所有绑定信息实例都是循环的。

在双向模式下,由模型字段更改触发的控件属性更改的更新在第49行中完成:this.\u firechange()函数。

此函数最终将调用委托给按钮控件引用:

UpdateProperty将调用setProperty,我们已经在本教程的第5部分详细讨论过了。

现在可以开始了检查一次性绑定模式。将绑定模式更改为OneTime:

然后在oButton1.bindProperty中,分离fModelChangeHandler。此函数在上一章中介绍了\u firechange(),见第一个屏幕截图,返利,

因此,积分返现,对于OneTime模式,此fModelChangeHandler被分离,绑定信息实例也从JSON模型中移除,因此即使Model字段有一些变化,返现网,绑定信息和fModelChangeHandler都不可用,不同步到相应的控件属性。