Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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中的所有服务中添加一些通用代码_Javascript_Angularjs - Fatal编程技术网

Javascript 如何在angularJs中的所有服务中添加一些通用代码

Javascript 如何在angularJs中的所有服务中添加一些通用代码,javascript,angularjs,Javascript,Angularjs,我有一个条件,即 if(localstorage.testEnv){ env.apiUrl='testUrl.com'; }else{ env.apiUrl='liveUrl.com'; } 我需要在所有服务中注入此代码。有没有什么方法可以实现这一点,这样他们就不会有任何代码重复。 还有,这段代码行得通吗?我正在尝试在此处更新env const(apirl)?最简单的方法是创建一个Utils服务并公开此文件中的所有公共函数,在本例中是一个从本地存储检查testEnv并返回相应U

我有一个条件,即

if(localstorage.testEnv){
   env.apiUrl='testUrl.com';
 }else{
   env.apiUrl='liveUrl.com';
 }
我需要在所有服务中注入此代码。有没有什么方法可以实现这一点,这样他们就不会有任何代码重复。
还有,这段代码行得通吗?我正在尝试在此处更新env const(apirl)?

最简单的方法是创建一个Utils服务并公开此文件中的所有公共函数,在本例中是一个从本地存储检查testEnv并返回相应URL的函数。在本例中,函数是getAPIBaseUrl

定义([“./module”],功能(服务){
“严格使用”;
services.service(“Utils”[
“$localStorage”,
函数($localStorage){
this.getAPIBaseUrl=函数(){
if($localStorage.testEnv){
返回“testUrl.com”;
}
返回“liveUrl.com”;
};
}
]);
});

除非API url可以在运行时更改,否则您可能需要定义
APIRL
和AngularJS

使用常数的主要好处是可以在配置阶段注入常数,例如:

app.config(function(apiUrl) {
  console.log(apiUrl)
})

两者都是,代码似乎很好。我创建了一个名为app.constant.js的文件,并使用了您的代码,但是我应该如何在app.constant中传递$localstorage服务?如果不修改
angular.injector
,就无法在
常量中注入AngularJS依赖项。如果您需要特定的服务而不是全局可用的
localStorage
,那么您可能应该使用
.factory
.service
而不是
.constant
app.config(function(apiUrl) {
  console.log(apiUrl)
})