gpt4 book ai didi

javascript - 您可以将 Angular 服务作为参数传递给另一个 Angular 服务提供的函数吗?

转载 作者:行者123 更新时间:2023-12-03 10:36:40 24 4
gpt4 key购买 nike

我的 Angular 应用程序中有很多使用大部分相同代码的函数。因此,我决定创建一个由经常重复的代码组成的服务,并将差异作为参数。

每个重复函数的主要区别之一是它们使用不同的服务。

例如,在简化的摘录中,有:

$scope.signin = function(email, password){
loginSrvc(email, password).execute()
.success(function(data, status, headers, config){
if (status == 200){
....

其中一个

  $scope.logout = function(){
$scope.loading = true;
signoutSrvc().execute()
.success(function(data, status, headers, config){
if (status == 200){
....

但本质上它们是同一件事。

我希望能够将每个函数正在使用的服务(例如 loginSrvcsignoutSrvc 等)传递给处理所有此类代码的外部服务.

但是,当我将该服务传递给新服务时,它在另一端显示为未定义

我的新服务如下所示:

sharedFunctionsApp.factory('serverCommunicationFactory', [function(){
console.log("serverCommunicationFactory");
return function(service){
console.log(service);
service.execute();
}
}]);

我从其他模块向它传递服务(当然是在注入(inject) ShareFunctions 模块之后),如下所示:

serverCommunicationFactory()(loginSrvc);

但它仍然显示为未定义

如何将我的服务传递到这个新的共享服务?

最佳答案

当然你可以在一个服务中注入(inject)其他服务,就像它一样:

sharedFunctionsApp.factory('yourServiceName', ['theServiceToInject', function(theServiceToInject){
return {
yourServiceMethode: function() {
console.log(theServiceToInject);
return;
}
}
}]);

编辑:

您还可以使用注入(inject)器来注入(inject)您的服务:docs然后动态注入(inject)服务,执行以下操作:

var myService = $injector.get('MyServiceName');

关于javascript - 您可以将 Angular 服务作为参数传递给另一个 Angular 服务提供的函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28959017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com