Angularjs可以跨多个ng-apps重用服务

dou*_*415 14 javascript angularjs

我正在尝试创建一个将使用多个角度ng-apps的Web应用程序,并且至少有两个可以使用相同的服务代码(他们不需要共享数据,但是它们执行类似的功能),所以如何避免代码重复?那是,

myApp1.factories.factory( 'myservice' [ function(){
   // stuff I dont want to repeat
}])
Run Code Online (Sandbox Code Playgroud)

...以及应用程序中其他位置的其他页面上的不同div:

myApp2.factories.factory( 'myservice' [ function(){
   // stuff I dont want to repeat
}])
Run Code Online (Sandbox Code Playgroud)

有没有办法让这两个应用程序重用该服务代码?或者,对于所有html只有一个ng-app被认为是最好的做法(即使这些部分可能是独立的),只是使用控制器进行分割?

谢谢

m.e*_*roy 26

angular.module('myReuseableMod', []).factory('myReusableSrvc', function() {
    // code here
});

var App1 = angular.module('myApp1', ['myReuseableMod']);
App1.controller('someCtrlr', ['$scope', 'myReusableSrvc', function($scope, myReusableSrvc) {
    // controller code
}]); // end someCtrlr

var App2 = angular.module('myApp2', ['myReuseableMod']);
App2.controller('someCtrlr', ['$scope', 'myReusableSrvc', function($scope, myReusableSrvc) {
    // controller code
}]); // end someCtrlr
Run Code Online (Sandbox Code Playgroud)

  • 我现在应该补充说,不应该使用`$`命名它们的模块,因为它是为Angular的核心保留的. (4认同)