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)
})