Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.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 如何在Angular.js中正确配置提供者服务_Javascript_Angularjs - Fatal编程技术网

Javascript 如何在Angular.js中正确配置提供者服务

Javascript 如何在Angular.js中正确配置提供者服务,javascript,angularjs,Javascript,Angularjs,像$locationProvider和$routeProvider那样,在config块中配置提供者的最佳实践或模式是什么 据我所知,只有提供者在config块中是可配置的 下面的代码块是我希望如何使用自己的自定义提供程序 .config([ '$routeProvider', '$locationProvider', '$httpProvider', function ($routeProvider, $locationProvider, $httpProvider) { $l

$locationProvider
$routeProvider
那样,在
config
块中配置提供者的最佳实践或模式是什么

据我所知,只有提供者在
config
块中是可配置的

下面的代码块是我希望如何使用自己的自定义提供程序

.config([
  '$routeProvider', '$locationProvider', '$httpProvider',
  function ($routeProvider, $locationProvider, $httpProvider) {
    $locationProvider
      .html5Mode(true)
      .hashPrefix('!');

    $routeProvider.otherwise({
      redirectTo: '/'
    });

    $httpProvider.defaults.withCredentials = true;
  }
])

对于供应商、工厂和服务,有很好的解释

简而言之,除了
$get
方法之外,您应该创建一个提供者并公开您需要的任何方法。在config调用时,您可以调用任何其他方法,当系统注入依赖项时,它将调用
$get
方法

组装了一个,但事情是这样的:

1。提供商

app.provider('myService',function()){
var配置值;
this.setValue=函数(val){
configuredValue=val;
};
这是。$get=function(){
返回{
ValueSettedBySeconFig:configuredValue
};
};
});
在这里,您为
myService
服务创建了提供者,公开了
setValue
配置方法,如
$locationProvider.html5Mode
$routeProvider.others

2。配置时刻

app.config(函数(myServiceProvider){
设置值(“我的配置值”);
});
在这里,您可以在使用模块之前,通过调用exposed
setValue
方法来配置模块

请注意,我们注入了提供者(
myService*provider*
),因为在配置阶段,您只能注入提供者,而不能注入服务

3。用法

app.controller('MainCtrl',函数($scope,myService){
$scope.name=myService.valuesettedBySeconfig;
});

最后,您只需注入服务,Angular将在配置阶段之后调用提供者的
$get
方法来生成实例。

非常感谢您的完整回答!