gpt4 book ai didi

javascript - 如何从AngularJS中的另一个服务方法调用工厂方法?

转载 作者:行者123 更新时间:2023-12-03 10:22:32 26 4
gpt4 key购买 nike

我有一个工厂方法......

(function (angular) {
"use strict";
angular
.module('app')
.factory('UserService', ['$rootScope', '$q', function ($rootScope, $q) {
var markCurrentUserAsContentOwner = function () {
var user = getCurrentUser(true);
user.set('isContentOwner',"true");
user.save(null, {
success: function(savedUser) {
alert("succes");
},
error: function(savedUser,error) {
alert("error");
}
});

};
}]);

})(angular);

现在如果我从另一个服务方法调用这个方法..

(function(angular) {
'use strict';

angular
.module('app')
.service('ContentOwnerService',
[
'$q', 'UserService'
function($q, userService) {
var servicemethod=function() {
userService.markCurrentUserAsContentOwner();//UserService is the factory name
};
}]);

})(angular);

它显示一个错误..未捕获类型错误:未定义不是一个函数。请任何人帮助我解决这个错误..

最佳答案

使用$injector服务来解决这个问题。 Example :

session.factory('redirectInterceptor', ['$injector','$rootScope', '$timeout', '$q', '$window', function($injector,$rootScope, $timeout, $q, $window) {
return {
'request': function(req) {

req.headers['CustomHeader'] = "Be Creative!";
return req || $q.when(req);

},
'response': function(response) {
if (response.data.Status === 'Failed...') {

var AuthenticationService = $injector.get('AuthenticationService');
AuthenticationService.ClearCredentials();

$window.location.href = "/#/login";
$timeout(function() {
$rootScope.sessiondata = true;
}, 5000)

return $q.reject(response);
} else {
return response;
}
}
}}])

关于javascript - 如何从AngularJS中的另一个服务方法调用工厂方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29565651/

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