'use strict';
var trkiApp = angular.module('trkiApp', [
'trkiApp.tStatus',
'trkiApp.feed'
]);
var tStatus = angular.module('trkiApp.tStatus', [])
.factory('Status', ['$q']);
var feed = angular.module('trkiApp.feed', []);
现在我不明白我怎么可能访问在另一个模块上定义的服务状态?
'use strict';
feed
.controller('FeedController', ['$scope','$http','Status']);
我不应该对吗?但不知何故,我......或者这是一种正确的行为吗?
答案 0 :(得分:52)
Module是配置和运行块的集合,它们在引导过程中应用于应用程序。模块可以列出其他模块作为其依赖项。根据模块的不同,需要在要求模块加载之前加载必需模块。
var myModule = angular.module('myModule', ['module1','module2']);
当你注入你的模块时,服务在配置阶段就已经注册了,你可以访问它们,所以长话短说,它是正确的行为和Angular中依赖注入的核心基础。 例如
angular.module('module1').service('appservice', function(appservice) {
var serviceCall = $http.post('api/getUser()',"Role");
});
那么如何使用angular.module('myModule');
angular.module('myModule').controller('appservice', function(appservice)
{
var Servicedata= appservice.ServiceCall('role');
}
这是如何访问的。如果有人有其他建议请说出来。
答案 1 :(得分:1)
<body ng-app="myModule" ng-controller="appservices"></body>
上面用于引导角度模块的代码部分
棱角应该看起来像:
var myModule = angular.module('myModule', ['module1','module2']);
myModule.controller("appservices",["$scope","mod1factory","mod2factory",function($scope,mod1factory,mod2factory){
console.log(mod1factory.getData()) ;
console.log(mod2factory.getData()) ;
}]);
var mod1 = angular.module('module1',[]);
mod1.factory("mod1factory",function(){
var mod1result = {};
mod1result = {
getData: function(){
return "calling module 1 result";
}
}
return mod1result;
});
var mod2 = angular.module('module2',[]);
mod2.factory("mod2factory",function(){
var mod2result = {};
mod2result = {
getData: function(){
return "calling module 2 result";
}
}
return mod2result;
});
说明:创建了一个主模块myModule并注入其他模块(在我的情况下是module1和module2)作为依赖项,这样你就可以访问主模块内的模块并在它们之间共享数据
console.log(mod1factory.getData()) ;
console.log(mod2factory.getData()) ;
创建了两个工厂并将其注入我的控制器mod1factory和mod12factory中。 所以mod1&amp; mod2都是不同的模块,但可以共享信息。在主控制器myModule中
答案 2 :(得分:0)
尝试从另一个模块注入依赖项时遇到了类似的问题。亚历克斯的回答并不适合我。我收到循环依赖错误。
要修复它,请确保您之前包含所有特定于模块的JavaScript。例如,moduleA
在另一个JS文件中定义。
var app = angular.module('plunker', ['moduleA']);
app.controller('MainCtrl', function($scope, MainService) {
$scope.name = 'World';
$scope.hello = MainService.hello();
});
工作示例Plunker