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

数据库_域名解析多久生效_安全稳定

小七 141 0

在复杂的UI5项目中,您不能通过使用绑定来完成所有工作。您可能需要在JavaScript中手动执行一些OData请求。这可能是由于几个原因造成的,比如如果你想做一个深度创建(createEntry不支持);https://ui5.sap.com/#/api/sap.ui.model.odata.v2.ODataModel/methods/createBindingContext)或者您想在显示之前操作数据。不管是什么原因,你都无法避免?

对于这些手动OData请求,发发淘客助手,我们可以使用UI5中OData模型的默认函数(这里没有新功能):

Read:从后端获取数据创建:用于向后端发送新数据更新:用于更新后端数据删除:用于删除后端数据

您可以在UI5 API参考上找到这些函数的所有详细信息:https://ui5.sap.com/#/api/sap.ui.model.odata.v2.ODataModel/constructor

如果您查看这些函数,您会注意到它们使用成功和错误回调函数从后端获取响应。这些函数没有什么问题,但我更喜欢使用promises…(请在此处阅读有关promises的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global\u Objects/Promise)

基于这个原因,我创建了一个包装器,它使用带有承诺的OData模型。我称之为"CoreService"对象?

"CoreService"对象基于MDN web docs中使用XMLHttpRequest的示例:

\u Objects/Promise.html

(我不认为这是原来的网址,但我在这里找不到它:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global\u Objects/Promise\Example\u using\u new\u XMLHttpRequest())

它由两部分组成:

一部分用于正常的HTTP调用(我从MDN复制)OData调用的另一部分

我将重点介绍"OData"函数。"CoreService"中的"odata"函数为调用内部核心.ajax"功能。每个积垢操作都会调用核心.ajax"函数,但将使用其他参数。这个论点是什么意思?

类型:这定义了将在UI5 ODataModel对象中使用的函数(读取、更新、创建或删除)对于每个积垢操作都会有所不同网址:实体或实体集的Url数据:需要发送到后端的JS对象。仅用于"post"和"put"参数:我们通常传递给ODataModel对象中函数的参数对象,如API中所述,返利怎么使用,例如,自建站平台,在read中:https://ui5.sap.com/#/api/sap.ui.model.odata.v2.ODataModel/methods/read

The"核心.ajax"函数将返回一个promise对象,该对象将在success函数中解析,在error函数中被拒绝。

完整函数

完整的"CoreService"对象:https://github.com/lemaiwo/PromiseDemo/blob/master/webapp/service/CoreService.js

我建议不要直接使用这个"CoreService"对象。我主要做的是,用一个更精确的对象扩展"CoreService"对象,该对象的名称更有意义,并且只包含相关函数。让我以应用于Northwind服务为例来解释这一点。

创建从"CoreService"扩展的第二个对象(假设CoreService添加到项目中),并将其命名为"NorthwindService"。现在,我们可以使用"NorthwindService"创建应用于Northwind服务的更具体的函数。例如,我们可以添加一个函数"getSuppliers"。此函数将调用实体"/供应商"的"CoreService"对象中"odata"函数的get函数,如下

我们也可以使用预定义的过滤器,如下所示:再看最后一行:"return new NorthwindService()"。这使我们能够从项目中的任何地方访问"NorthwindService"的一个和同一个实例。

完整的代码,带有更多示例,包括过滤器、参数和创建:https://github.com/lemaiwo/PromiseDemo/blob/master/webapp/service/NorthwindService.js在这个博客的后面我有一个例子wilt a sorter and top.

在项目中使用"NortwindService"之前还有一件事。我们需要将ODataModel注册到"NortwindService"。这是我在组件中所做的:

只需调用"getSuppliers"函数,并在"then"函数中用响应填充模型。你可能会想为什么我不直接使用OData模型的read函数。它将在一个更复杂的例子中显示它的好处。例如,云服务器哪里好,我们希望按如下顺序执行多个请求:现在,我们可以在项目中使用"NorthwindService"对象了。例如,我可以在我的主控制器中这样使用:

检查ID为20的供应商是否存在这可能会失败,但不应阻止下一个请求。因此,我在它后面添加了一个catch函数。找出"雷蒙德"市有多少供应商最后得到所有的供应商

每次请求后,我都会显示一条消息并更新一个进度条,向最终用户显示进度:

这不是最好的例子,但它显示了承诺是如何工作的。在这种情况下,你也可以用我保证。好的要在批处理请求中同时运行所有请求,请查找有关的详细信息答应我。好的在这里:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global\u Objects/Promise/all