AngularJS:不同文件中的服务

Kor*_*ore 14 angularjs

我正在学习AngularJS,这是一个受ng-boilerplate启发的组织.我为我的网站的不同部分创建了不同的Angular模块.

但是,我想在主模块下创建所有公共元素(服务和指令),同时将它们全部放在单独的源文件中.

这段代码有效,但是sessionService.js中的模块引用了与app.js相同的模块,还是创建了一个具有相同名称的新模块?

app.js

var app = angular.module('myApp', [...])
.config(...)
.controller(...);
Run Code Online (Sandbox Code Playgroud)

sessionService.js

angular.module('myApp', [])
.service('SessionService', function() { ... });
Run Code Online (Sandbox Code Playgroud)

Dai*_*wei 33

如果您angular.module('myApp', [])在同一页面上多次呼叫,则可能会遇到错误或冲突.我从来没有尝试过.

但是,如果您已经运行angular.module('myApp', [])过一次.然后你可以运行angular.module('myApp')(注意:不[])来检索(参考)myApp你之前定义的模块.

  • 答对了.声明一个没有依赖项的模块会重新打开它以进行进一步的定义. (2认同)

Aja*_*thy 7

在controller.js文件中:

var app = angular.module('myApp',['newService']);
Run Code Online (Sandbox Code Playgroud)

在service.js中:

angular.module('newService',[])

.service('someService',function(){

    return {
         // return something
         return null
         }
    }

});
Run Code Online (Sandbox Code Playgroud)

不要忘记在HTML中包含两个js文件:

<script src="controllers/controller.js" type="text/javascript"></script>
<script src="services/service.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)