如何在angularjs中为一个控制器写入2个文件?

时间:2013-07-09 17:42:00

标签: angularjs

我想要将controller拆分为2个文件。

Monitor.js

var feederliteModule = angular.module('FeederLiteApp', ['ui.bootstrap']);

feederliteModule.controller('WiFiMonitor', function(
ajax_post,
delay,
switcher,
maps,
$scope,
$http,
$timeout,
$q,
$filter)
 {

 $scope.method_1 = function(){
    /*....*/
 }

 $scope.method_2 = function(){
    /*....*/
 }    


});

feederliteModule.$inject = [
    'ajax_post',
    'delay',
    'switcher',
    'maps',
    '$scope',
    '$http',
    '$timeout',
    '$q',
    '$filter'
];

我的控制器的内容很大,我有部分代码,我无法改变。

如何将部分控制器代码提取到不同的文件?

在我的情况下,我希望将$scope.method_2方法放在其他文件中,但仍然可以调用

来自$scope.method_2

$scope.method_1,所有全局参数都应在两个文件中都可见。

谢谢,

1 个答案:

答案 0 :(得分:1)

Part1.js:

var buildPart1 = function(ajax_post, ..., $scope, ...) {
    $scope.foo = ...;
    $scope.bar = ...;
};

Part2.js:

var buildPart2 = function(ajax_post, ..., $scope, ...) {
    $scope.qix = ...;
    $scope.baz = ...;
};

Monitor.js:

feederliteModule.controller('WiFiMonitor', function(ajax_post, ..., $scope, ...) {
    buildPart1(ajax_post, ..., $scope, ...);
    buildPart2(ajax_post, ..., $scope, ...);
});