varios que pasar parametros entre directivas controladores conectar comunicar comunicacion componentes angularjs controllers

que - Cómo dividir un solo controlador en múltiples archivos js en angularjs



pasar parametros entre controladores angularjs (3)

Podría usar App.factory o app.service en su módulo angular. Serían más como heredar los datos en su fragmento . para que pueda asignar la parte de los datos fuera del controlador principal y heredar la variable asignada en su controlador.

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; ))

Estoy reescribiendo una aplicación grande de silver-light a angularjs, mientras lo hago, me estoy dando cuenta de que cada uno de los archivos js de mi controlador abarca entre 2000 y 3000 líneas de código . Todo mi código depende en gran medida de las variables de alcance . ¿Se pregunta si hay alguna oportunidad de dividir un archivo js de controlador único en varios archivos js? Cualquier puntero sería apreciado.


También puede crear un controlador base y usar el servicio $controller para crear controladores derivados.

Por ejemplo:

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 }

Hay otras formas de dividir los controladores en archivos separados, echa un vistazo a este video ng-conf.


Utilice el controlador múltiple para manejar la tarea en su página. Si el uso de un controlador de gran tamaño es inevitable, puede dividir la definición en varios archivos pasando el alcance a otro método y luego definir el resto de métodos allí.

En el primer archivo:

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

En el segundo archivo

app.expandControllerA = function($scope) { }

Puede pasar cualquier variable o dependencias a la función expandControllerA.