Angular Dependency Injection如果将控制器,服务等分离为单独的模块

时间:2014-12-02 09:49:33

标签: javascript angularjs web-services

所以我有我的主要模块:

var app =  angular.module('LookupTool', ['ngRoute','controllers','services']);

然后我的服务在一个单独的services.js文件中

var services = angular.module('services',[]);

services.factory('WebServices',function(){
...
});

然后我的控制器在一个单独的controller.js文件中

var mainControllers = angular.module('controllers',[]);

mainControllers.controller('SearchCtrl', function ($scope) {

});

现在我的问题是这种模块化程度如何将我的服务注入我的控制器,这是一个最佳实践设置吗?

2 个答案:

答案 0 :(得分:0)

var mainControllers = angular.module('controllers',['services']);

mainControllers.controller('SearchCtrl', function ($scope,WebServices) {

});

我不认为以这种方式设置是正确的,模块应该是业务模块,每个模块应该包含自己的控制器,服务等。

例如,对于大学域名模块可以像出勤,考试,报告等。

答案 1 :(得分:0)

如果您的服务如下,您可以按照以下方式使用

    services.factory('WebServices',function(){
    var webService= new WebService();
    return webService;
    ...
    });

并具有类似

的功能
function WebServices(required angular variables)
{
..
}

..如果需要,添加一些原型函数..

。这将是您的实际服务。

之后,您可以通过以下方式访问它

mainControllers.controller('SearchCtrl', function ($scope, webServices) {
$scope.webService= webService
});