对用户提交的数据实施复杂的业务约束给大量开发人员带来了独特的挑战。 最近,我和我的团队在Gift Gifts.c​​om上编写应用程序时面临着这样的挑战。 我们需要找到一种方法,允许我们的客户在我们的应用程序内的单个视图中编辑多个产品,其中每个产品都有一套独特的验证规则。

事实证明,这具有挑战性,因为它要求我们在HTML源代码中具有多个<form>标记,并为每个表单实例维护一个验证模型。 在解决方案之前,我们尝试了许多方法,例如使用ngRepeat显示子窗体。 我们将为每种产品类型创建一个指令(每个指令在其视图中将具有<form> )并将该指令绑定到其父控制器。 这使我们能够利用Angular的子/父窗体继承来确保仅在所有子窗体均有效时父窗体才有效。

在本教程中,我们将构建一个简单的产品审查屏幕(突出显示当前应用程序的关键组件)。 我们将有两种产品,每种产品都有自己的指令,每种产品都有独特的验证规则。 将有一个简单的checkout按钮,可确保两种形式均有效。

如果您迫切希望看到此功能,可以直接跳至我们的演示,或从GitHub repo下载代码。

关于指令的话

指令是通过AngularJS的HTML编译器( $compile )运行并附加到DOM的HTML代码块。 编译器负责遍历DOM,以寻找可以使用其他已注册指令转换为对象的组件。 指令在孤立的范围内工作,并保持自己的观点。 它们是功能强大的工具,可促进可在整个应用程序之间共享的可重用组件。 如需快速复习,请查看此SitePoint文章或AngularJS文档 。

指令通过两种方式解决了我们的基本问题:首先,每个实例都有一个隔离的范围,其次,该指令使用编译器遍历,从而编译器使用Angular的ngForm指令在视图的HTML中标识表单元素。 此内置指令允许多个嵌套的form元素,接受可选的name属性以实例化Form Controller ,并将与form对象一起返回。

关于表单控制器的一句话

当编译器识别出DOM中的任何表单对象时,它将使用ngForm指令实例化Form Controller对象。 该控制器将扫描所有input selecttextarea元素,并创建适当的控件。 这些控件需要一个model属性来设置双向数据绑定,并允许用户通过各种预先建立的验证方法即时获得反馈。 向消费者提供即时反馈可以使他们在发出HTTP请求之前知道哪些信息有效。

内置验证方法

Angular随附14种标准验证方法。 这些措施包括验证minmaxrequired的名字,但一些。 它们的构建旨在理解和使用几乎所有HTML5输入类型,并且它们与跨浏览器兼容。

<form name="form" novalidate>Size:<input type="text" ng-model="size" name="size" ng-required="true" /><span ng-show="form.size.$error.required">The value is required!</span>
</form>

上面的示例显示了Angular中ngRequired指令验证器的用法。 此验证可确保在将该字段视为有效之前先对其进行填写。 它不验证任何数据,仅验证用户已输入内容。 具有属性novalidate表示浏览器不应在提交时进行验证。

专家提示:不要在任何Angular窗体上设置action属性。 这将阻止Angular尝试确保不以往返方式提交表单。

定制验证方法

Angular提供了广泛的API,可帮助创建自定义验证规则。 使用此API,您可以为标准验证未涵盖的复杂输入创建和扩展自己的验证规则。 我和我的团队依靠一些自定义验证方法来运行服务器使用的复杂RegEx模式。 如果无法运行复杂的RegEx匹配器,我们可能会向我们的后端服务器发送不正确的数据。 这将向用户呈现错误,从而导致不良的用户体验。 自定义验证器使用指令语法并要求注入ngModel 。 有关更多信息,请参见AngularJS的文档 。

创建控制器

有了这些,我们就可以开始我们的应用程序了。 您可以在此处找到控制器代码的概述。

控制器将成为事物的心脏。 它仅具有少量职责-它的视图将具有一个名为parentForm的表单元素,将仅具有一个属性,并且其方法将包括registerFormScopevalidateChildFormcheckout

控制器属性

我们将在控制器中需要一个属性:

$scope.formsValid = false;

此属性用于维护表单整体有效性的布尔状态。 单击此属性后,我们将使用该属性禁用“签出”按钮的状态。

方法:registerFormScope

$scope.registerFormScope = function (form, id) {$scope.parentForm['childForm'+id] = form;
};

调用registerFormScope ,会将其传递给Form Controller以及在指令实例化中创建的唯一指令ID。 然后,此方法会将表单范围附加到父Form Controller

方法:validateChildForm

这是用于与执行验证的后端服务器协调的方法。 当用户正在编辑内容并且需要进行其他验证时,将调用它。 从概念上讲,我们不允许指令执行任何外部通信。

请注意,出于本教程的目的,我已省略了后端组件。 相反,我基于用户输入的数量是否落在某个范围内(产品A为10 – 50,产品B为25-500)拒绝或兑现承诺。

$scope.validateChildForm = function (form, data, product) {// Reset the forms so they are no longer valid$scope.formsValid = false;var deferred = $q.defer();// Logic to validate the form and data// Must return either resolve(), or reject() on the promise.$timeout(function () {if (angular.isUndefined(data.amount)) {return deferred.reject(['amount']);}if ((data.amount < product.minAmount) || (data.amount > product.maxAmount)) {return deferred.reject(['amount']);}deferred.resolve();});return deferred.promise;
}

使用$q服务允许指令遵循具有成功和失败状态的接口。 应用程序界面的性质根据模型数据的编辑在“编辑”和“保存”之间改变。 应该注意的是,一旦用户开始键入,模型数据就会更新。

方法:结帐

单击“签出”表示用户已完成编辑并希望签出。 在将模型数据发送到服务器之前,该可操作项将需要验证指令中加载的所有表单均通过验证。 本文的范围不会涵盖用于将数据发送到服务器的方法。 我鼓励您探索使用$ http服务来实现所有客户端到服务器的通信。

$scope.checkout = function () {if($scope.parentForm.$valid) {// Connect with the server to POST data}$scope.formsValid = $scope.parentForm.$valid;
};

此方法使用Angular的子窗体的功能来使父窗体无效。 父表单被命名为parentForm以清楚地说明其与子表单的关系。 当childForm使用其$setValidity childForm方法时,它将自动升至父窗体以在那里设置有效性。 parentForm所有表单必须有效,其内部$valid属性才为true。

制定指令

我们的指令必须遵循允许完全互操作性和可扩展性的公共接口。 我们的指令名称取决于它们所包含的产品。

您可以在此处(产品A)和此处(产品B)找到指令代码的概述。

隔离指令范围

实例化的每个指令都将获得一个隔离的作用域,该作用域被本地化为该指令,并且不了解外部属性。 但是,AngularJS确实允许创建利用父母范围方法和属性的指令。 将外部属性传递到本地化范围时,可以指示要设置双向数据绑定。

我们的应用程序将需要一些外部双向数据绑定方法和属性:

scope: {registerFormScope: '=',giftData: '=',validateChildForm: '=',product: '='
},

方法:registerFormScope

指令的本地范围中的第一个属性是向控制器注册本地scope.form的方法。 该指令需要一个管道来将本地Form Controller对象传递给主Controller

对象:giftData

这是将在指令视图中使用的集中模型数据。 此信息将是双向数据绑定,以确保在Form Controller中发生的更新将传播到主Controller

方法:validateChildForm

此方法与Controller内部定义的方法相同。 当用户在指令视图中更新信息时,将调用此方法。

对象:产品

该对象包含有关所购买产品的信息。 我们的演示使用了一个相对较小的对象,仅具有少量属性。 我的团队在现实世界中的应用程序具有大量信息,这些信息可用于在应用程序内做出决策。 它被传递到validateChildForm以提供正在验证的内容的上下文。

指令链接

我们的指令将使用postLink函数, postLink其传递一个范围对象。 除此之外, postLink函数还接受其他几个参数。 这些如下:

  1. scope –用于访问对每个指令实例创建的隔离作用域。
  2. iElement –用于访问元素项。 从postLink函数中更新和修改分配给它的元素是唯一安全的。
  3. iAttrs –用于访问实例化该指令的同一标记上的属性。
  4. controller –如果存在外部控制器依赖性,则可在链接功能中使用。 这些必须与Directive Objectrequire属性相对应。
  5. transcludeFn –该功能与“ $transclude Directive Object$transclude参数中列出的功能相同。

link负责附加所有DOM侦听器,并使用view元素更新DOM。

link: function postLink(scope) {// Indicates if the form is disabledscope.disabled = true;scope.saveForm = function () {// Code for saving the form data};// Register form scope$timeout(function() {});
}

注册表格范围

$timeout(function () {scope.form.fields = ['name','amount'];scope.registerFormScope(scope.form, scope.$id);
});

$timeout包装方法registerFormScope将执行推迟到执行堆栈的末尾。 这为编译器提供了充足的时间来完成控制器和指令之间的所有必要链接。 scope.form.fields是一个数组,它是在Form Controller中找到的属性的名称,这对于设置服务器端验证错误很重要。 registerFormScope的目的是将Form Controller发送到父控制器,从而允许将新创建的表单设置为parentForm的子parentForm

验证信息何时更改

scope.saveForm = function () {scope.validateChildForm(scope.form, scope.giftData, scope.product).then(function () {angular.forEach(scope.form.fields, function (val) {scope.form.$setValidity(val, true);scope.form[val].$error.server = false;});scope.disabled = true;}, function (invalidFields) {angular.forEach(invalidFields, function (val) {if (angular.isDefined(scope.form[val])) {scope.form[val].$error.server = true;scope.form.$setValidity(val, false);}});scope.disabled = false;});
};

当表单更改并且用户准备对其进行验证时,将调用伪指令中的saveForm方法。 该方法将依次调用控制器的validateChildForm方法,并scope.product Form Controllerscope.giftDatascope.product 。 控制器将返回一个承诺,该承诺将根据其他验证规则予以解决或拒绝。

当承诺被拒绝时,控制器将返回无效的字段。 这用于使表单(和parentForm )无效,并设置其他字段级别的错误。 在我们的演示中,我们在数量字段上使用了一个简单的后验证,并且没有返回失败的原因。 validateChildForm的拒绝可能像您的应用程序所要求的那样复杂或简单。

当Promise成功返回时,指令需要设置表单中字段的有效性。 该代码还必须清除任何以前确定的服务器错误。 这样可以确保该指令不会错误地向用户提供错误。 设置所有带有$setValidity parentForm字段的链接到控制器中的parentForm ,以设置其有效性, parentForm是所有子窗体均有效。

设定我们的观点

视图不是很复杂,对于我们的演示,我们将产品配对到以下字段: nameamount 。 在下一步中,我们将探索完成此应用程序所需的视图。

您可以在此处(产品A)和此处(产品B)找到查看代码的概述。

路线图

<div data-ng-app="myApp" ng-controller="stageController"><div id="main" class="container"><h1>Review Order</h1><form name="parentForm" novalidate><div ng-repeat="gift in gifts" class="row"><div class="col-lg-12"ng-if="gift.product.type == 'A'"product-A data-register-form-scope="registerFormScope"data-gift-data="gift.giftData"data-validate-child-form="validateChildForm"data-product="gift.product"></div><div class="col-lg-12"ng-if="gift.product.type == 'B'"product-B data-register-form-scope="registerFormScope"data-gift-data="gift.giftData"data-validate-child-form="validateChildForm"data-product="gift.product"></div></div></form><div class="row"><div class="col-lg-12"><button class="btn btn-primary" data-ng-click="checkout()">Checkout</button><div class="alert alert-success" data-ng-show="formsValid">All forms are valid!</div></div></div></div>
</div>

该视图很重要,因为它设置了父表单,该父表单将用于包装从product指令加载的所有子表单。 在ng-repeat使用ng-if确保使用未使用的Form Controller不会错误地填充DOM。

指令视图

<form name="form" novalidate>
...<label for="amountInput">Amount</label><input id="amountInput" name="amount"class="text-center form-control" type="tel"data-ng-model="giftData.amount" data-ng-pattern="/^(?!\.?$)\d+(\.\d{0,2})?$/" data-ng-required="true"data-ng-disabled="disabled"/>
...<label>Actions</label><button class="btn btn-info" ng-click="disabled=false;" ng-show="disabled">Edit</button><button class="btn btn-success" ng-click="saveForm()" ng-show="!disabled">Save</button>
...<div class="row" data-ng-show="form.$submitted"><div class="col-lg-12"><div class="alert alert-danger" data-ng-show="form.name.$error.required && form.$submitted">Recipient Name is a required field.</div><div class="alert alert-danger" data-ng-show="form.amount.$error.pattern && form.$submitted">The amount is invalid.</div><div class="alert alert-danger" data-ng-show="form.amount.$error.server && form.$submitted">The amount is not accepted. Must be between {{ product.minAmount }} and {{ product.maxAmount}}.</div></div></div>
...
</form>

注意:上面的视图在与演示的布局有关的地方被截断了,对本文不重要。

上面的amountInput设置了一个验证模式,该验证模式将由Angular的ngPattern验证器强制执行。 上面的字段将使用ngDisabled构建的ngDisabled指令,该指令将评估表达式,如果为true ,则将禁用该字段。

在视图的底部,我们显示了所有错误,以向用户单击Save按钮时提供反馈。 这将在子窗体上设置$submitted属性。

包起来

将所有部分放在一起,最终得到的是:

请参阅CodePen上的SitePoint ( @SitePoint )进行的Pen AngularJS指令表单验证 。

别忘了,您也可以在GitHub上找到所有代码。

结论

我和我的团队在构造我们的最新应用程序方面学到了很多东西。 了解父母/子女表格的关系使我们能够简化审查屏幕。 使用指令使我们能够开发一种可以在任何上下文中使用的形式,并促进良好的可重用代码。 指令还允许我们拥有经过单元测试的代码,以确保我们的表格能够按预期工作。 我们的应用程序已投入生产,已促成100,000多个订单。

希望您喜欢阅读本文。 如果您有任何问题或意见,我们将很高兴在下面的评论中听到他们的意见。

From: https://www.sitepoint.com/form-based-directives-angularjs/

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. angularjs入门案例 新玩具-中午吃神马

    angularjs 是一个用来开发单页webAPP的mvv框架&#xff0c;由Google 开发&#xff0c;如果不知道angularjs 的可以先google 下 按照angularjs 的开发一般顺序先搭建好需要做的视图&#xff0c;然后准备数据&#xff0c;最后绑定事件处理业务逻辑&#xff0c;操作DOM事件用户和程…...

    2024/4/12 16:32:18
  2. 在跨平台应用程序中进一步推广Angular Mobile UI

    在我们的Mobile Angular UI教程的第一部分中 。 我们看到了如何通过实现SignIn功能入门。 在这一部分中&#xff0c;我们将实现SignUp功能并将ladda集成到我们的应用中以增强其UI。 入门 Heroku上提供了我们将要创建的应用程序的演示。 源代码可在GitHub上获得 。 首先&#xf…...

    2024/4/5 22:27:38
  3. angular ui_在跨平台应用程序中进一步推广Angular Mobile UI

    angular ui在我们的Mobile Angular UI教程的第一部分中 。 我们看到了如何通过实现SignIn功能入门。 在这一部分中&#xff0c;我们将实现SignUp功能&#xff0c;并将ladda集成到我们的应用中以增强其UI。 入门 Heroku上提供了我们将要创建的应用程序的演示。 源代码可在GitH…...

    2024/4/12 16:32:33
  4. 按钮绑定数值刷新问题

    代码1&#xff1a; $scope.end_bid_sign_upfunction(){if(!$scope.bid_sign_up_checked){var end_bid_sign_up_button_checkedconfirm("您确定要结束本次竞价么&#xff1f;");if(end_bid_sign_up_button_checked true){localStorage.setItem("bid_begin_check…...

    2024/4/12 16:32:23
  5. 埋线双眼皮恢复对比

    ...

    2024/4/13 16:06:38
  6. 关于ng-disabled 不起作用的解决办法

    ng-disabled 在button中是起作用的&#xff0c;当在span/div中是不起作用的&#xff0c;有时候业务需求的点击操作是在非button上实现&#xff0c; <button ng-click"event()" ng-disabled"showClicked">Click Me</button>&#xff08;这种情…...

    2024/4/12 20:06:38
  7. AngularJs ngReadonly、ngSelected、ngDisabled

    ngReadonly 该指令将input&#xff0c;textarea等文本输入设置为只读。 HTML规范不允许浏览器保存类似readonly的布尔值属性。如果我们将一个Angular的插入值表达式转换为这样的属性&#xff0c;那么当浏览器删除该属性时&#xff0c;绑定信息就会丢失。这个指令不被浏览器删除…...

    2024/4/15 3:06:17
  8. 贵阳纳米无痕双眼皮管多少年

    ...

    2024/4/5 22:27:31
  9. Python Web开发——Django框架学习

    文章目录Web开发简介Web应用技术Web前端开发Web后端开发使用 Django 开发后端服务项目目标管理员操作登录界面客户管理界面添加客户界面药品管理界面添加药品界面订单管理界面添加订单界面接口文档登录系统请求消息请求参数响应消息响应内容客户数据列出所有客户请求消息请求参…...

    2024/4/5 22:27:30
  10. 日志异常处理errors学习笔记

    与你相识 博主介绍&#xff1a; – 本人是普通大学生一枚&#xff0c;每天钻研计算机技能&#xff0c;CSDN主要分享一些技术内容&#xff0c;因我常常去寻找资料&#xff0c;不经常能找到合适的&#xff0c;精品的&#xff0c;全面的内容&#xff0c;导致我花费了大量的时间&a…...

    2024/4/12 16:33:14
  11. 《OpenGL编程指南》第九版——2.绘制两个三角形

    我将跟随OpenGL编程指南对每个例子进行详解,每个例子将贴出实验结果和实验代码,仅供参考,代码部分可能我会进行一些修改与官方代码不同。 实现效果:TwoTriangles.PNG1.Main函数1.glfwInit初始化GLFW库 2.glfwCreateWindow设置程序所使用的窗口类型以及期望的窗口尺寸。还创…...

    2024/4/5 22:27:29
  12. ionic4.0 详细热更新 自动模式以及手动模式--秒杀网上一切热更新因为网上没有手动更新的详细代码 测试无误上线发布了的东西.

    ionic4.0 详细热更新 自动模式以及手动模式(全)–纯手打,独一无二,绝对好用. 网上一大堆ionic 热更新,但是都是说的最基本的自动更新操作,安装几个插件,改几个配置文件,就草草了事,让我真的很烦躁,通过自己不断的查找,终于守得云开见月明,找到了手动热更新操作,以及通过点击事…...

    2024/4/12 16:33:44
  13. 二、python框架相关知识体系

    Django框架 1、django框架、flask框架和Tornado框架的区别&#xff1f; django框架&#xff0c;内置组件多&#xff0c;自身功能强大&#xff0c;是一个大而全的框架&#xff0c;ORM、Admin、中间件、Form、ModelFrom、信号、缓存、csrf等flask框架&#xff0c;内置组件少&…...

    2024/4/12 16:33:24
  14. Python架构篇

    前端和框架 1.谈谈你对http协议的认识 浏览器本质&#xff0c;socket客户端遵循Http协议HTTP协议本质&#xff1a;通过\r\n分割的规范&#xff0c;请求响应之后断开链接 > 短连接、无状态 具体&#xff1a;Http协议是建立在tcp/ip之上的&#xff0c;是一种规范&#xff0c;…...

    2024/4/12 16:33:14
  15. Python 经典面试题汇总之框架篇

    前端和框架 1.谈谈你对http协议的认识 浏览器本质&#xff0c;socket客户端遵循Http协议HTTP协议本质&#xff1a;通过\r\n分割的规范&#xff0c;请求响应之后断开链接 > 短连接、无状态 具体&#xff1a;Http协议是建立在tcp/ip之上的&#xff0c;是一种规范&#xff0c;它…...

    2024/4/15 5:24:47
  16. 双眼皮术后第四天图片

    ...

    2024/4/16 9:19:24
  17. 【js】限制字符长度时区分中英文

    前情提要在我们做字符串长度限制时(中、英文都可以输入的情况下),如果简单限制字符串长度的话,在英文情况下会稍显不合理。因此,对中、英文进行区分来做长度限制会更好一些。主要步骤 这里我们可以封装一个函数,识别中文字符则长度+2,其余字符长度+1,然后返回字符长度 …...

    2024/4/12 16:33:34
  18. 单只前高后低的修复一只双眼皮大概多少钱

    ...

    2024/4/12 16:33:39
  19. 埋线双眼皮眼睛设计

    ...

    2024/4/12 16:33:19
  20. 小程序 csrf_单页应用程序中的现代csrf缓解

    小程序 csrfCross-Site Request Forgery (or CSRF or XSRF or “sea-surf”) is one of the oldest attacks against web apps. It means that by embedding a form or URL into a malicious site, the attacker can get a request executed on the vulnerable server as if th…...

    2024/4/12 16:33:09

最新文章

  1. 【verilog 设计】 reg有没有必要全部赋初值?

    一、前言 在知乎发现“reg有没有必要全部赋初值”这个问题&#xff0c;与自己近期对Verilog reg的进一步学习相契合&#xff0c;此文对这个问题进行总结。 二、reg的初值赋值方式 就语法意义赋初值而言&#xff0c;就是在声明reg时对其赋值。在工程中&#xff0c;对于数字系…...

    2024/4/17 4:41:25
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 华为OD机试 - 跳马(Java JS Python C C++)

    须知 哈喽,本题库完全免费,收费是为了防止被爬,大家订阅专栏后可以私信联系退款。感谢支持 文章目录 须知题目描述输入描述输出描述解题思路:题目描述 马是象棋(包括中国象棋和国际象棋)中的棋子,走法是每步直一格再斜一格,即先横着或者直者走一格,然后再斜着走一个…...

    2024/4/12 18:11:50
  4. 【APUE】网络socket编程温度采集智能存储与上报项目技术------多路复用

    作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…...

    2024/4/17 3:18:46
  5. 【C++】C++中的list

    一、介绍 官方给的 list的文档介绍 简单来说就是&#xff1a; list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中…...

    2024/4/16 14:53:08
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/16 14:09:00
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/16 20:21:35
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/15 9:18:15
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/17 2:33:17
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/15 9:17:51
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/15 9:17:44
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/15 13:52:20
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/16 1:58:32
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/16 20:03:42
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/17 1:38:19
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/15 9:17:15
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/15 13:53:08
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/15 9:16:52
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/15 13:53:31
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/16 20:03:44
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/15 9:16:31
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/15 13:54:27
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/15 23:28:22
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/17 0:53:22
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/15 13:54:53
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57