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

数据库_崇州网站建设_限时特惠

小七 141 0

SAPUI5/OpenUI5的教程,使用MobX模型(live demo:Plunker,在GitHub上完成了教程代码)。

反应式状态管理很好,因为它使应用程序状态管理与使用电子表格一样简单–想想"Excel"或"googlesheets"。SAP在其SAP Predictive Maintenance&Service应用程序中使用它。

作为一名程序员,您可能会忘记更改某些数据可能会影响角落中看似不相关的组件。MobX不会忘记的。它将自动跟踪每一个更改。

从一个带有验证和消息管理器的SAPUI5应用程序开始,本教程将逐步演示如何使用反应式状态管理扩展现有的UI5应用程序。无需重写所有内容。被动功能可以在原始代码的基础上逐步引入。

使用Christian Theilemann为MobX构建的非官方UI5绑定。

Laszlo Kajan是一位全栈的Fiori/SAPUI5专家,自2015年起就在SAPUI5领域工作。

这篇博文背后的动机是从UI5被动状态管理的故事中总结出来Christian的博客文章:验证。除了验证之外,它还展示了如何在现有应用程序的迭代开发过程中逐步引入反应式变更管理。这是一个非常重要的方面,因为它大大降低了UI5应用程序中反应状态管理的门槛,并大大扩展了其适用性。

本教程中使用的UI5绑定是Christian的一个分支,有待合并。

非常感谢Christian Theilemann的灵感、绑定和优秀的博客文章"通过MobX在SAPUI5中进行反应式状态管理",以及其中链接的见解。

本教程的出发点是GitHub上openui5 MobX教程的"StartingApp"分支:一个"正常"的SAPUI5应用程序,毫无意外。

无论您想到什么实现,使用反应式编程都会带来更干净的结果,更好的结构化代码。更好的是,它更易于维护,并且开发人员不容易出错。让我们看看。

让我们实现上面提出的验证逻辑,使用反应式状态管理:

白雪公主必须至少有一个有效名称,即至少有一个名称输入字段必须填写并有效如果两个字段都已填写,则两个字段都必须有效验证消息必须继续指出问题,大数据 数据分析,如果有的话

我们的目标是尽可能增量地实现更改,尽可能少地重写原始应用程序。

用MobxModel替换JSONModel

反应性验证

正如我们前面提到的,无效输入不会复制到模型中。这使得我们的反应模型不可能验证字段,更重要的是验证字段组。

我们通过更改输入字段验证的行为来解决这一问题:

当输入控件执行解析和后续验证时,无论发生什么情况,都必须向模型传递一些值在输入控件验证期间,解析和验证不能引发异常如果模型中的某个值发生了更改,则新值将进行反应性验证(无论更改的来源是什么)

这可以通过:

扩展(即子类化)类型的sap.ui.model模型.type'用于MoxModel,定义验证结果的扩展类型感知计算模型属性,以及将输入控件"valueState"和"valueStateText"属性绑定到计算的验证结果。

像这样扩展应用程序:

我们必须将传统的基于输入控件(绑定)类型的验证逻辑与新的反应模型验证逻辑结合起来。

我们首先从域收集反应验证结果对数组建模(数据图)。然后,我们将结果转换为一组验证消息,并将这些消息与MessageManager的消息连接起来。我们将MessagePopover绑定到此串联消息数组。

反应字段组验证

现在让我们实现"白雪公主必须至少有一个有效名称"的条件。

我们定义了一个新的计算属性"FullName",并对其进行验证:

用户尚未更改的UI5控件不显示验证消息,不管它们绑定到的属性值是多少。因此,物联网概念股,云服务器和服务器,我们最初也希望在MessagePopover中看不到任何消息。另一方面,我们希望名字和姓氏输入控件在修改后显示错误"valueState",并带有"至少输入…""valueStateText"。

对于前者(即除非更改,否则没有错误状态),我们需要跟踪用户发起的更改。对于后者(即在组输入控件上显示字段组"valueStateText"),我们需要"valueState"和"valueStateText"根据验证结果显示不同的值。

现在更改名和姓的"valueState"和"valueStateText"的绑定:

我们现在已经完全实现了"白雪公主必须拥有的"至少有一个有效的"name"条件。

具有可选格式的First name和'valueStateText'

请查看已完成教程的Plunker(GitHub上的源代码)。这个应用程序包含一个名字的可选输入字段,具有不同的格式、解析和错误'valueStateText':

这是通过扩展'sap.ui.model模型.类型.字符串'定义一个新的'StringWithApple'类型,微信返利,该类型提供格式化程序、解析器和验证器。类型在""中实例化模型.js,并用于新的计算验证属性"FirstName$WithApple$validation"。新属性仅用于提供可选输入字段的"valueState"和"valueStateText"。"$validation"的验证消息(因此"FirstName$validation")继续出现在消息popover中。

为了演示对域模型的动态更改,现在让我们允许添加最多三个dwarf,其名称要求与白雪公主的相同。