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