jquery - modal angular no cerrado($ uibModal)
angularjs modal-dialog (2)
angular
.module(''angProj'')
.controller(''UserCtrl'',
[''$scope'', ''$uibModal'',
function ($scope, $uibModal) {
$scope.results = function (content, completed) {
var modalInstance = $uibModal.open({
backdrop: ''static'',
keyboard: false,
animation: $scope.animationsEnabled,
templateUrl: ''/Scripts/angularApp/views/user-modal.html'',
controller: ''UserModalCtrl'',
resolve: {
items: function () {
return $scope.items;
}
}
});
if (!completed || content.length === 0) {
return;
}
modalInstance.close();
modalInstance.dismiss(''cancel'');
No puedo cerrar el modelo cuando el usuario agrega la finalización. En user-modal, estoy mostrando la barra de progreso. El código funciona bien sin errores, pero el modal permanece abierto. También probé $ uibModalInstance pero el controlador arroja un error: proveedor desconocido (no se puede inyectar $ uibModalInstance en el mismo UserCtrl) Estoy inyectando ui.bootstrap (ui-bootstrap-tpls-1.1.2.js)
Gracias por tu tiempo.
He hecho algo similar, creo.
Tengo un controlador $modal
que se parece a esto
angular.module(''myApp'').controller(''infoCtrl'', function ($scope, $uibModalInstance, loading) {
$scope.editable = loading;
$scope.$watch(''editable.status'', function(newValue, oldValue) {
if (newValue == ''success''){
// close modal
$uibModalInstance.close(''ok'');
} else if (newValue == ''error'') {
// show error message
}
});
});
La loading
inyectada es un servicio que se ve así
myApp.factory(''loading'', function() {
return {
status: ''''
}
});
Y cuando cambio el estado de mi servicio de carga a ''éxito'' (desde cualquier lugar, no desde el controlador modal), el modal se cierra.
No sé si esto es exactamente lo que estaba pidiendo, pero espero que ayude, también, solo pregunte si algo no está claro.
EDITAR: Entonces digamos que tiene un servicio con un valor isCompleted: false
, isCompleted: false
ese servicio en su controlador modal, y use la función $watch
, luego cuando eso se isCompleted
se cambie a true
, cierre el modal.
Use modalInstance.close()
dentro de su controlador UserModalCtrl
app.controller(''UserModalCtrl'', [''$scope'', ''$modalInstance'' function($scope ,modalInstance {
$scope.close = function () {
modalInstance.close();
};
}]);