Подтвердить что ты не робот

Как разделить один контроллер в нескольких js файлах в angularjs

Я переписываю большое приложение из серебристого света в angularjs, делая это, я понимаю, что каждый из моего js файла контроллера охватывает 2000-3000 строк кода. Весь мой код сильно зависит от переменных области. Хотите узнать, есть ли возможность разделить один JS файл контроллера на несколько js файлов? Любой указатель будет оценен.

4b9b3361

Ответ 1

Используйте несколько контроллеров для обработки задачи на своей странице. Если использование большого контроллера неизбежно, вы можете разделить определение на несколько файлов, передав область действия другому методу, а затем определите остальные методы там.

В первом файле:

app.controller('CtrlA', function($scope){
app.expandControllerA($scope);

});

Во втором файле

app.expandControllerA = function($scope)
{

}

Вы можете передать любую переменную или зависимости для функции expandControllerA.

Ответ 2

Вы также можете создать базовый контроллер и использовать $controller для создания производных контроллеров.

Например:

function BaseCtrl($scope, options) {
    var vm = this;

    // code
    return vm;
}

function ChildCtrl($controller, $scope) {
    var vm = $controller('BaseCtrl', {
        $scope: $scope,
        options: { }
    });

    // extend view model
    vm.name = '';

    return vm
}

Есть другие способы разделить контроллеры на отдельные файлы, посмотрите этот ng-conf видео.

Ответ 3

Вы могли бы использовать App.factory или app.service в вашем модуле angular, Они больше походили бы на то, чтобы вставлять данные в ваш фрагмент. так что вы можете назначить часть данных вне основного контроллера и наследовать назначенную переменную в своем контроллере.

    app.factory('name of the factory',function(){
return (data)
   )
app.controller('$scope','name of the factory', function(scope, name of the factopry

$scope.new = data;
))