angular本身提供了很多内置服务,比如:

  1. $q: 提供了对promise的支持。
  2. $http: 提供了对ajax的支持。
  3. $location: 提供了对URL的解析。
  4. ...

这些服务,或多或少地会出现在我们控制器(controller)、指令(directive)或者某个被依赖注入的函数中,帮助我们实现特定的功能。

当然,除了调用官方的服务,我们也可以定义适合于自己业务的“服务”,这个后面会讲到。

服务的本质

从代码层面来看,服务其实一个单例(可以是任何类型),被所有的调用者所共享(在一个angular应用生命周期内,它只会被初始化一次)。

服务的调用

所有的服务,都是通过依赖注入的方式被调用的。

像这样,简单地调用$timeout服务(代码在这里):

var app = angular.module('myApp', []);// 注入$timeout服务
app.run(['$timeout', function ($timeout) {$timeout(function () {console.log('hello');},2000).then(function () {console.log('world');});
}]);

显然,要想弄清楚服务,必然得先说一说依赖注入,往下看~~

依赖注入(DI)

angular在前端引入了DI的概念,目的是更快更轻巧地引入函数执行时所需要的依赖项(这些依赖项就是前面说到的服务)。

设想:我们在写一个异步请求数据的函数,我们会调用库异步api:

用jquery,我们会这样写:

function getData () {$.ajax({...});
}

用angular,我们可以这样写:

function getData ($http) {$http({...});
}
  1. 从功能层面上看:都一样。
  2. 从代码层面上看:jquery方面,通过$.ajax调用(万一$是全局的且函数嵌套很深呢?);而angular方面,则是通过形参$http直接调用且更清晰。
  3. 从性能方面上看:jquery方面,$.ajax方法在程序开始就会被声明初始化;而angular方面,事实上,只在$http第一次被调用时才会被初始化。

另外:设想一下,如果angular像jquery这样做:

angular.$http = function () {...}

那么对于越来越多的自定义服务而言:

angular.$xxx = function () {...}

这样会使得,angular这个全局变量一开始就会变得很臃肿而且受到到污染,在调用方面也更是多了一层全局访问。

综上:angular采用依赖注入服务的形式来使用特定功能更为恰当(当然,以上都是个人理解)。


那么来看看依赖注入的几种方式(代码在这里):

1.隐式注入(通过函数toString,正则匹配出依赖项,如:$log

var ng = angular.module('ng');// 隐式注入
ng.run(function ($log) {$log.error('隐式注入');
});

2.显示注入(通过数组或者fn.$inject,指明依赖项,如:$log

var ng = angular.module('ng');// 显示注入
ng// 数组指明依赖项.run(['$log', function (log) {log.error('数组显示注入');}])// fn.$inject指明依赖项.run(fn);function fn (log) {log.error('$inject显示注入');
}fn.$inject = ['$log'];

问:angular是如何解析函数的依赖项的?

答:通过一个叫做annotate的函数解析,解析的步骤如下:

  1. 如果目标是函数fn

    • 优先获取fn.$inject作为依赖项(显示注入)
    • 其次是通过fn.toString(),然后正则匹配出参数作为依赖项(隐式注入)
  2. 如果目标是数组arr,那么arr.slice(0, arr.length - 1)作为依赖项(显示注入)

我们可以这样做测试:

function fn ($log, $timeout) {// ...
}
console.log(angular.injector.$$annotate(fn)); // ["$log", "$timeout"]

注意:由于线上代码往往会压缩混肴,所以这时只能使用显示依赖注入的方式。

ok,到这里我们知道可以通过annotate函数解析出一个函数(或数组)的依赖项,那么如何实现注入的呢?

答案:一切的一切都跟内置的服务$injector有关。


是否还记得angular程序启动时,会执行这句:

var injector = createInjector(modules, config.strictDi);

这是能够使用依赖注入的根本原因,因为它创建了$injector服务。


仔细的分析createInjector方法到底做了些什么:

  1. 创建了两个injector实例以及两个cache,用于依赖注入
  • providerInjector(服务提供者的依赖注入)
  • instanceInjector(服务的依赖注入)
  • providerCache(服务提供者缓存)
  • instanceCache(服务缓存)
  1. 加载程序所需要的所有(依赖)模块
  • 注册依附在模块上的指令,服务,控制器,过滤器等
  • 执行模块的配置函数(即myModule.config(fn)
  • 执行模块的运行函数(即myModule.run(fn)

这里就需要说明下 服务提供者(provider) 与 服务(instance)的关系?

服务的提供者:

  1. 顾名思义,是用来提供服务的(从程序的角度来说就是,初始化服务实例并返回)
  2. 另外,它还有一个作用就是:配置服务

$rootScope服务为例:它对应的服务提供者就是$rootScopeProvider(注意:$injector$provide除外)。

来个例子吧(代码在这里):

服务的注入:

var app = angular.module('myApp', []);app.run(function ($rootScope) {$rootScope.msg = 'hello world';});

服务提供者的注入:

var app = angular.module('myApp', []);app.config(function ($rootScopeProvider) {$rootScopeProvider.digestTtl(5);   // 配置digest循环的ttl});

总结:上面的两个例子进行了依赖注入,不同的只是注入的对象(一个是服务,一个是服务提供者)。

造成这种不同的根本原因是什么?

  1. run函数在内部使用instanceInjector.invoke(fn),获取的是依赖的服务实例,并传递给fn函数,供调用,提供服务功能。

  2. config函数在内部使用providerInjector.invoke(fn),获取服务提供者,并传递给fn函数,供调用,提供服务配置。

所以说,就有了两个维度上的差别:

  1. instanceInjector:针对的是服务实例的注入。
  2. providerInjector:针对的是服务提供者的注入。

知道了原理后,对于上面的两个注入的例子我们可以这样改写,代码在这里:

服务的注入:

var app = angular.module('myApp', []);app.config(function ($injector) {  // 获取providerInjector$injector.invoke(function ($rootScopeProvider) {$rootScopeProvider.digestTtl(5);  // 配置digest循环的ttlconsole.log($rootScopeProvider)});});

服务提供者的注入:

var app = angular.module('myApp', []);app.run(function ($injector) {  // 获取instanceInjector$injector.invoke(function ($rootScope) {$rootScope.msg = 'hello world';});});

另外:对于instanceInjector,我们也可以通过angular.injector(...)自己创建,所以我们还可以这样改写,(代码在这里):

var injector = angular.injector(['ng']);injector.invoke(function ($rootScope, $compile) {$rootScope.$apply(function () {$compile(document.body)($rootScope);$rootScope.msg = 'hello world';});  
});

注意:以上的改写只是为了说明原理,一般都不建议这样做,因为angular会帮我们做这部分工作,我们只要按要求引入依赖即可。


再然后,说说服务提供者如何提供服务?

依旧拿$rootScope举例:

$rootScope的提供者$rootScopeProvider有一个(可以依赖注入的)$get函数(或者数组),负责返回服务实例(可以是任何类型)。


再说说cache的问题?

之前说过angular的服务实例是一个单例,归根结底的原因就是cache的存在,才使得服务实例的构造函数只会执行一次。

上面说过了,有两个cache对象:

  1. providerCache(服务提供者缓存)
  2. instanceCache(服务实例缓存)

当我们注册一个服务,叫做'xx'(准确的说是服务提供者)时,大部分情况会经过包装(或者实例化)转换成包含$get函数(或者数组)的对象,然后存储到providerCache中,所以:

  1. 如果是对服务提供者(xxProvider)的依赖,其实都是根据键值'xxProvider'providerCache中获取的,如果获取不到则报错。
  2. 如果是对服务(xx)的依赖,则是优先根据键值'xx'instanceCache中获取,
  • 如果获取到,则返回。
  • 如果获取不到,那么就根据键值'xxProvider'获取服务提供者,然后通过调用它的$get方法返回服务实例,最后再缓存进instanceCache中。

服务的注册

之前,我们举例说的都是内置服务,现在我们看看如何自定义属于适合自己业务的服务?

angular给我们提供了以下几种注册服务的方式:

  1. provider:注册可配置的服务。

  2. factory:注册服务的快捷方式,基于provider方法,不可配置。

  3. service:利用构造函数注册服务,基于factory方法。

  4. value:注册简单的返回值服务,不支持依赖注入,基于factory方法。

  5. constant:注册常量服务,且在config函数中可调用。

  6. decorator:拦截装饰现有服务,用于扩展或者重写服务。


我们举例来说明,(代码在这里):

1.provider方法

var app = angular.module('myApp', []);// provider 可配置服务app.provider('A', ['$logProvider', function (LogProvider) {var isDebug = true;this.debugEnabled = function (flag) {LogProvider.debugEnabled(!!flag);};this.$get = ['$log', function (log) {return {debug: function (msg) {log.debug(msg);}};}];
}]);

provider方法创建了可配置的服务A,它的可配置体现在:我们可以在config函数中调用它的服务提供者(AProvider)的debugEnabled方法进行配置,如下:

app.config(function(AProvider) {AProvider.debugEnabled(false); // 配置服务})

另外,可以看到AProvider还有一个必不可少的(可依赖注入的)$get数组(当然也可以是函数),它则负责返回服务实例(就像之前说的那样),因此,我们在run函数中才可以这样调用:

app.run(function (A) {A.debug('A provider') ;})

2.factory方法

var app = angular.module('myApp', []);// factory app.factory('B', function ($log) {return {debug: function (msg) {$log.debug(msg);}};    
});

factory方法是注册了服务B,和服务A基本一样,唯一不同的就是它不可配置

其实factory方法是基于provider方法的,其实是注册服务的快捷方式,内部实现是这样的:

function factory(name, factoryFn) { return provider(name, { $get: factoryFn }); }

也就是说,我们在factory中注册的函数,在provider中被当作$get,那么函数的返回值自然就是服务实例,所以可以这样调用:

app.run(function (B) {B.debug('B factory');});

3.service方法

var app = angular.module('myApp', []);// service 构造函数app.service('C', function ($log) {this.debug = function (msg) {$log.debug(msg);};
});

service方法注册了服务C,与factory方法不同的是,它的函数不需要返回值,而是以构造函数实例化的形式生成服务实例,

所以可以这样调用:

app..run(function (C) {C.debug('C service');});

其实service方法是基于factory方法的,归根结底也是基于provider方法,内部实现是这样的:

function service(name, constructor) {return factory(name, ['$injector', function($injector) {return $injector.instantiate(constructor); // 实例化构造函数}]);
}

4.value方法

var app = angular.module('myApp', []);// valueapp.value('E', {debug: function (msg) {console.log(msg);}
});

value方法注册了服务E,服务实例就是注册的值,这里是一个对象(当然,可以是其他任何类型)。

比如:

app.value('F', 'hello world');  // 一个字符串
app.value('G', function () {    // 或者一个函数console.log('hello world');
});

其实value方法,也是基于factory方法的,内部实现如下:

function value(name, val) { return factory(name, valueFn(val)); }function valueFn(value) {return function() {return value;};}

可见,value方法就是将这个注册的值作为服务实例返回,只是中间过程不再有依赖注入

使用方法:

app.run(function (E) {E.debug('E value');});

5.constant方法

var app = angular.module('myApp', []);// constant 常量app.constant('D', 'D constant');
app.constant('D', 'modified'); // 无效

constant方法是用来定义常量服务的,它的值可以使任何类型。

说说跟value方法的区别:

  • constant方法定义的服务不可修改(毕竟是常量)

  • constant方法定义的服务还可以在config函数中被调用


说说constant定义的服务不可修改的原因?

首先得看看模块对象的constant方法的实现:

constant: invokeLater('$provide', 'constant', 'unshift')

不清楚invokeLater方法的可以看我上一篇写的《指令》里有介绍。

这里我们要注意的是:数组的unshift方法,从前插入,这就意味着在循环数组时,第一个执行app.constant()方法的总是最后一个执行$provide.constant()方法,

所以这样就做到了常量的效果,实质上每行代码都执行了,只是值覆盖顺序反过来而已。


说说为什么可以在config函数中被调用常量服务?

这就需要看下$provide.constant方法的实现:

function constant(name, value) {assertNotHasOwnProperty(name, 'constant');providerCache[name] = value; // 因为这句,config函数可以直接注入,并且不需要加后缀ProviderinstanceCache[name] = value;
}

所以,最终我们可以这样调用服务D:

app.config(function(D) {console.log('config: ' + D);}).run(function (D) {console.log(D);});

6.decorator方法

var app = angular.module('myApp', []);// decoratorapp.config(function ($provide) {$provide.decorator('A', function ($delegate, $log) {$delegate.error = function (msg) {$log.error(msg);};return $delegate;   // 注意:一定要返回修改的(或新的)服务实例});  
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 开韩式宜昌双眼皮手术那最好

    ...

    2024/5/6 22:55:48
  2. angular 锚点 刷新界面 浏览器后退按钮是否可用

    //浏览器后退按钮可用 /*window.location.hash "#/"; window.location.href window.location.href recordsCenter/SMSSendLog;*/ // 浏览器后退按钮可用 window.location.hash #/recordsCenter/SMSSendLog;//浏览器后退按钮没响应 //window.location.hash recor…...

    2024/4/21 12:44:58
  3. 双眼皮术后眼发胀

    ...

    2024/4/21 12:44:57
  4. 贵阳美莱医院双眼皮主任

    ...

    2024/5/5 16:40:27
  5. 阳光医院深圳沈阳哪家医院做开眼角双眼皮好

    ...

    2024/5/7 1:26:15
  6. 做了双眼皮提肌快三个月了还外翻

    ...

    2024/4/21 12:44:53
  7. 眼角除皱针一打双眼皮变窄

    ...

    2024/5/3 5:46:55
  8. 双眼皮比眼珠宽

    ...

    2024/4/27 22:33:38
  9. 割双眼皮内眼角还是肿

    ...

    2024/4/21 12:44:51
  10. 双眼皮提肌以后眼睛疲劳

    ...

    2024/4/21 12:44:51
  11. 切口双眼皮术

    ...

    2024/4/21 12:44:49
  12. 苏州双眼皮和开眼角价格是多少钱

    ...

    2024/4/21 12:44:48
  13. Ajax XMLHttpRequest对象的三个属性以及open和send方法

    (1)onreadystatechange 属性onreadystatechange 属性存有处理服务器响应的函数。下面的代码定义一个空的函数,可同时对 onreadystatechange 属性进行设置:xmlHttp.onreadystatechange=function() { // 我们需要在这里写一些代码 }(2)readyState 属性 readyState 属性存有服务…...

    2024/4/20 16:15:53
  14. 苏州美莱双眼皮全切手术失败

    ...

    2024/4/20 16:15:52
  15. Angular 7表单输入框联动

    业务场景:购买次数输入框和预警次数输入框。要求预警次数小于购买次数。当超过的时候需要文字提示。 解决办法:写一个方法 validateBiggerBuyTimesAndWarinTimes() {if (!this.productForm.value.xxx) {return true;}if (this.productForm.value.yyy&…...

    2024/4/28 19:07:12
  16. 佛山整佛山做埋线双眼皮老品牌美来

    ...

    2024/4/19 17:48:47
  17. 杭州埋线双眼皮详问5美来

    ...

    2024/4/21 12:44:47
  18. 杭州双眼皮好8详问珈禾

    ...

    2024/4/21 12:44:45
  19. 获取java项目根目录

    获取java项目根目录 2012-11-24 20:03 67853人阅读 评论(4) 收藏 举报分类:java(45) 一 相对路径的获得 说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的Java项目还是web项目) String relati…...

    2024/4/21 12:44:44
  20. 做了双眼皮手术后太窄

    ...

    2024/4/21 12:44:44

最新文章

  1. Vue入门到关门之Vue高级用法

    一、在vue项目中使用ref属性 ref 属性是 Vue.js 中用于获取对 DOM 元素或组件实例的引用的属性。通过在普通标签上或组件上添加 ref 属性,我们可以在 JavaScript 代码中使用 this.$refs.xxx 来访问对应的 DOM 元素或组件实例。 放在普通标签上,通过 th…...

    2024/5/7 1:32:53
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/5/6 9:38:23
  3. C# 构建可定时关闭的异步提示弹窗

    C# 构建可定时关闭的异步提示弹窗 引言1、调用接口的实现2、自动定时窗口的实现 引言 我们在最常用最简单的提示弹框莫过于MessageBox.Show( )的方法了,但是使用久了之后,你会发现这个MessageBox并不是万能的,有事后并不想客户去点击&#x…...

    2024/5/2 6:14:07
  4. Linux中的shell脚本之流程控制循环遍历

    3 条件判断 4 流程控制语句 1)if 语句 案例,用户输入用户名和密码,判断用户名是否是admin,密码是否是123,如果正确,则显示登录成功 首先我创建了shell文件,touch getpawer 其中getpawer 是我自己命的名 #!/bin/bas…...

    2024/5/5 8:44:49
  5. 【外汇早评】美通胀数据走低,美元调整

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

    2024/5/4 23:54:56
  6. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/5/4 23:54:56
  7. 【外汇周评】靓丽非农不及疲软通胀影响

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

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

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

    2024/5/6 9:21:00
  9. 【外汇早评】日本央行会议纪要不改日元强势

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

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

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

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

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

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

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

    2024/5/4 23:55:16
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

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

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

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

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

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

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

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

    2024/5/4 23:55:06
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

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

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

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

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

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

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

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

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

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

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

    %读入6幅图像(每一幅图像的大小是564*564) 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
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:16:58
  44. 如何在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