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){
设置值(“我的配置值”);
});
在这里,您可以在使用模块之前,通过调用exposedsetValue
方法来配置模块
请注意,我们注入了提供者(myService*provider*
),因为在配置阶段,您只能注入提供者,而不能注入服务
3。用法
app.controller('MainCtrl',函数($scope,myService){
$scope.name=myService.valuesettedBySeconfig;
});
最后,您只需注入服务,Angular将在配置阶段之后调用提供者的
$get
方法来生成实例。非常感谢您的完整回答!