Angularjs 对新的角度控制器模块进行布线

Angularjs 对新的角度控制器模块进行布线,angularjs,Angularjs,我想知道是否有人能帮我弄清楚如何连接我的新角度服务模块 我一直收到相同的Javascript错误: Error: [$injector] Unknown provider: gridHierarchyServiceProvider" <-- gridHierarchyService 在我的dashboard.js文件中,我尝试注入这个新的服务模块: (function () { 'use strict'; var controllerId = 'dashboard'; angular.m

我想知道是否有人能帮我弄清楚如何连接我的新角度服务模块

我一直收到相同的Javascript错误:

Error: [$injector] Unknown provider: gridHierarchyServiceProvider" <-- gridHierarchyService
在我的dashboard.js文件中,我尝试注入这个新的服务模块:

(function () {
'use strict';
var controllerId = 'dashboard';
angular.module('app').controller(controllerId, ['common', 'datacontext', 'gridHierarchyService', dashboard]);

function dashboard(common, datacontext, gridHierarchyService) {
            ...
}
当然,我正在把它加载到我的index.html中:

 <!-- app Services -->
<script src="app/services/datacontext.js"></script>
<script src="app/services/gridHierarchyService.js"></script>
<script src="app/services/directives.js"></script>    
但它不起作用

        ========== UPDATE !!! ============
我很高兴地说,这是一个非常简单的修复,感谢这里的社区

工作服务:

 (function () {
'use strict';
var serviceId = 'gridHierarchyService';
angular.module('app').factory(serviceId, ['common', gridHierarchyService]);

function gridHierarchyService(common) {
    var service = {
        getDataSourceSchema: getDataSourceSchema
    };
    return service;

    function getDataSourceSchema() {
        var i = 1;
        i = 2;
    }
}
})();

我看到您在匿名函数中定义控制器,但从未执行这些匿名函数

您的代码:

(function(){
   //declarations
   alert('You will never see me because I do not execute');
});
固定代码(请注意末尾的参数):

请参见此处运行的上述代码:

请在此处查看有关模块模式的更多信息:

此外,您尝试
factory
进行服务也是正确的。要使gridHierarchyService成为服务(而不是控制器),只需将中的
controller
更改为
factory
service

 var controllerId = 'gridHierarchyService';
 angular.module('app').controller(controllerId, ['common', gridHierarchyService]);

希望这能帮到你。

抓得好!我自己也做过一两次;)将删除我的答案,因为它不正确。宾果!谢谢你的时间乔纳森·威尔逊-非常感谢。同时也感谢你之前的投入,Sunil D。
(function(){
   //declarations
   alert('You will never see me because I do not execute');
});
(function(){
   //declarations
   alert('You can see me!');
})();
 var controllerId = 'gridHierarchyService';
 angular.module('app').controller(controllerId, ['common', gridHierarchyService]);