一个将在多个应用程序中使用的Angular控制器

时间:2017-07-19 19:16:40

标签: angularjs

因此,当您以角度定义控制器时,您就是这样做的。

angular.module('AppName').controller('ControllerName', function ($scope, $location, dataService, commonMethods) {
});

你会如何处理并在两个不同的应用程序中使用相同的控制器?

angular.module('AppName1').controller('ControllerName', function ($scope, $location, dataService, commonMethods) {
});

angular.module('AppName2').controller('ControllerName', function ($scope, $location, dataService, commonMethods) {
});

3 个答案:

答案 0 :(得分:0)

创建一个单独的模块,其中包含您在各种应用程序(控制器,服务等)之间共享的所有项目,然后将该模块注入任何需要这些项目的应用程序。

所以在像shared.js这样的东西你有:

angular.module("shared")
.controller(...)
.service(...)
.constant(...)

然后确保在应用程序的模块文件之前加载shared.js文件,然后将其注入:

angular.module("应用""共享&#34)

答案 1 :(得分:0)

这正是模块的用途,使应用程序模块化。

angular.module('some', []).controller('SomeController', ...);
...
angular.module('app1', ['some']);
...
angular.module('app2', ['some']);

答案 2 :(得分:0)

如果您将服务,工厂,指令等放入SEPARATE js文件中,并且每个文件都以。然后只包含.js文件。

// Constants.js
.constant('Constants', {
    Initialize_IntervalMilliseconds: {
        defltTimeout: 50,
        longTimeout: 250
    }
});

// factoryGlobal.js
myTable.factory('factGlobal', function () {
    return {
        BaseURL: "http://localhost:6/api/", 
        etc = ""
    };
});

您可以将它们用于多个模块。非常好