首先是我的factorys代码:
angular.module('myModule').factory('actionsService', ['$http', '$window', '$q', 'jsUtils', 'dataService', 'perspectivesService', function($http, $window, $q, jsUtils, dataService, perspectivesService) {
'use strict';
//some functions
function buildMenuItem(item, targets, callInvoker) {
if(...) {
//some code
} else {
perspectivesService.removeExtension(item.id);
}
}
//some more functions
}]);
我收到以下错误:
错误TypeError:perspectivesService.removeExtension不是函数
我知道问题不是来自我的perspectivesService,因为我以相同的方式将它注入控制器并调用相同的函数(removeExtension)并且它工作正常。这里依赖注入显然存在问题,但我无法弄清楚究竟是什么。从我所读到的内容来看,将我的服务注入工厂不应该是一个问题,它的完成方式与将它注入控制器的方式完全相同。任何想法我都会这样做。我在这做错了吗?
有我的perspectives服务代码:
(function () {
'use strict';
angular.module('myModule').service('perspectivesService', perspectivesService);
perspectivesService.$inject = ['$http'];
function perspectivesService($http){
return {
removeExtension: removeExtension,
setEditEnabled: setEditEnabled,
isEditEnabled: isEditEnabled
};
function removeExtension(ext){
$http({
method: 'POST',
url: 'remove',
params: { removeExt: ext
}
}).then(function(resp){
console.log('Its was successfull');
});
}
function setEditEnabled(edit){
localStorage.setItem('editMode', edit);
}
function isEditEnabled(){
if(localStorage.getItem("editMode") === 'true'){
return true;
}else if(localStorage.getItem("editMode") === 'false') {
return false;
}else{
return false;
}
}
}
})();