Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS-module().provider()与$provide.provider()的比较_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS-module().provider()与$provide.provider()的比较

Javascript AngularJS-module().provider()与$provide.provider()的比较,javascript,angularjs,Javascript,Angularjs,注意:我不是在寻找价值、工厂、服务和供应商“配方”之间的差异 我在寻找关于定义它们的不同方式的澄清:如果我错了,请纠正我,但看起来好像是这样 myApp = angular.module('myApp', []) .value(...) .factory(...) .service(...) .provider(...) 映射到 $provide.value() $provide.factory() $provide.service() $provide.pro

注意:我不是在寻找价值、工厂、服务和供应商“配方”之间的差异

我在寻找关于定义它们的不同方式的澄清:如果我错了,请纠正我,但看起来好像是这样

myApp = angular.module('myApp', [])
    .value(...)
    .factory(...)
    .service(...)
    .provider(...)
映射到

$provide.value()
$provide.factory()
$provide.service()
$provide.provider()
你可以用任何一种方法。我问,意识到我可以使用
$provide
作为
module().config()
的依赖项。我的问题是:

  • 何时/为什么使用angular.module().provider()而不是使用
    $provide
    依赖项
  • 定义后是否有任何方式(或理由)访问/更改提供程序
  • 使用,我查看了各种角度
    $scope
    属性,没有看到
    $provide
    $injector
    。这些人住在哪里
  • 模块定义之外的提供者方法只是捷径。尽可能多地使用它们,因为这样可以使代码更短、更易于阅读和理解。与注入$provider服务并直接调用该服务相比,所涉及的仪式/仪式更少。直接使用$provide的主要原因是访问它上的方法,而该方法不是模块的捷径(例如decorator),或者如果您必须从服务或组件中执行一些不在模块定义级别的操作

  • 在定义后更改提供程序的常见情况是集成第三方组件并希望添加或更改行为时。第三方模块将定义该服务,然后您介入并以特定于您的应用程序的某种方式覆盖或扩展该服务。例如,一种常见的情况是采用内置的Angular异常处理程序,并将其扩展到与您自己的组件接口

  • $scope是一种用于数据绑定的特殊“粘合剂”,仅公开在$scope上显式设置的属性/函数。所有其他杂项模块/服务都存储在Angular的依赖项注入容器中。Angular做的第一件事就是创建一个$injector实例来跟踪依赖关系。因此$injector==$injector.get(“$injector”)。美元也一样。按照惯例,任何以$为前缀的内容都是一种服务,可以放在$注入器中供您使用


  • 1-你可以直接使用第一个,不能直接使用另一个,这就是angularJs使用依赖注入的原因,我认为这没有什么神秘之处。2-是的,不仅是对提供者,这也是为什么AngularJs专注于依赖注入的原因。我不知道。