栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在应用配置Angular.js中的自定义提供程序中使用$ http

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在应用配置Angular.js中的自定义提供程序中使用$ http

底线是:

  • 不能 将服务注入提供者配置部分
  • CAN 注入服务成初始化提供者的服务的部分

细节:

Angular框架有两个阶段的初始化过程:

阶段1:配置

在此

config
阶段,将初始化所有提供程序,并
config
执行所有部分。这些
config
部分可能包含配置提供程序对象的代码,因此可以将它们与提供程序对象一起注入。但是,由于提供者是服务对象的工厂,并且在此阶段,提供者尚未完全初始化/配置->
**您不能在此阶段要求提供者为您创建服务-

在配置阶段您不能使用/注入服务**。此阶段完成后,所有提供程序都准备就绪(配置阶段完成后,无法再进行任何提供程序配置)。

第二阶段:跑步

run
阶段期间,
run
将执行所有部分。在此阶段 ,提供者已准备就绪,可以创建服务- >在此
run
阶段,您可以使用/注入服务

例子:

1.将
$http
服务注入提供者初始化功能 无法正常工作

//ERRONEOUSangular.module('myModule').provider('myProvider', function($http) {    // SECTION 1: pre to initialize/configure the PROVIDER goes here

(executed during

config
phase)

    this.$get = function() {        // pre to initialize/configure the SERVICE goes here (executed

during

run
stage)

        return myService;    };});

由于我们试图将

$http
服务注入到在该
config
阶段执行的函数中,因此会出现错误:

Uncaught Error: Unknown provider: $http from services

该错误实际上是在说

$httpProvider
用于创建
$http
服务的尚未准备就绪(因为我们仍处于
config
阶段中)。

2.将
$http
服务注入服务初始化功能 起作用:

//OKangular.module('myModule').provider('myProvider', function() {    // SECTION 1: pre to initialize/configure the PROVIDER goes here (executed during `config` phase)    ...    this.$get = function($http) {        // pre to initialize/configure the SERVICE goes here (executed during `run` stage)        return myService;    };});

由于我们现在将服务注入到服务初始化函数中,该函数在

run
阶段中执行,因此该代码将起作用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/371001.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号