referencia org docs component angularjs controller angular-ui-bootstrap

component - https docs angularjs org/>



Reutilización del controlador angular para modal y no modal (1)

¿Cómo voy a reutilizar un controlador angular a los efectos de un modal y no modal? Tengo un nuevo requisito de negocio para tener el mismo formulario que existe ya en un modal (solo el cuerpo modal) colocado en una pestaña dentro de una página nueva.

Actualmente estoy usando resolve dentro de mi inicialización modal para pasar una variable al controlador del modal.

Inicialización modal

var modalInstance = $uibModal.open({ templateUrl: ''myModal.html'', controller: ''myCtrl'', resolve: { foo: function() { return scope.fooFromScope; }, } });

Controlador existente

myApp.controller(''hrpoConductReviewModalCtrl'', [''$scope'', ''foo'', function($scope, foo) { ... }]);

Actualmente no estoy usando $uibModalInstance dentro de mi modal.

¿Hay alguna forma de inicializar un controlador desde otro controlador y pasar la variable foo ? Hay una pregunta existente que pregunta lo mismo, pero la respuesta principal se centra en usar el scope dentro de la inicialización modal en lugar de resolve .

Pregunta existente: ¿Cómo usar el mismo controlador para la forma modal y no modal en Angular UI Bootstrap?

En caso de que esté utilizando el enrutador ui, puede usar la resolución del enrutador ui:

$stateProvider .state(''conductReview'', { url: ''/review'', templateUrl: ''/js/templates/review.html'', controller: ''hrpoConductReviewModalCtrl'', resolve: { foo: function() { return scope.fooFromScope; }, $uibModalInstance: function () { return null; } // <- workaround if you want to use $uibModalInstance in your controller. } })

En caso de que no estés usando el enrutador ui, definitivamente deberías echarle un vistazo ;-)