angular.js - Angular如何创建类似$http的全局service?
本文介绍了angular.js - Angular如何创建类似$http的全局service?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
想写一个全局的工具类,我在独立的js文件中声明ng service(并加载到html)
(function(angular){
"use strict";
angular.module('testModule',function(){
return {
test : function(){
console.info('testModule is ready!');
}
}
});
})(window.angular);
然后想在appmodule的controller里面注入
testModule
,但提示注入失败
var mainApp = angular.module('mainApp',[]);
mainApp.controller('homeController',['testModule',function(testModule){
testModule.test();
}]);
"Error: [$injector:unpr] Unknown provider: testModuleProvider
解决方案
谢邀,你写的只对了30%。这里涉及两个话题:
1、不同module
angular.module('testModule')
和 angular.module('mainApp',[])
是两个不同的module,你想要在 mainApp
中使用 testModule
,那么你需要在 angular.module('mainApp', [ 'testModule' ])
导入这种依赖。
2、全局工具类的写法不正确
上面有人回答了:
(function(angular){
"use strict";
angular.module('testModule', []).factory('alertService', function() {
return {
test : function(){
console.info('testModule is ready!');
}
}
});
})(window.angular);
在使用时,可以:
var mainApp = angular.module('mainApp',[ 'testModule' ]);
mainApp.controller('homeController',['alertService',function(alertService){
alertService.test();
}]);
以上代码未经过验证,结构上应该没有什么问题,请自行调试解决。
这篇关于angular.js - Angular如何创建类似$http的全局service?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文