Tengo un problema con la interfaz de usuario modal de Bootstrap.

En un controlador tengo este:

app.controller("tableCtrl",['$scope','$http','$uibModal','$log' ,function ($scope, $http,$uibModal,$log) {
  $scope.open = function (size,selectedUser) {
  var modalInstance = $uibModal.open({
    animation: $scope.animationsEnabled,
    templateUrl: 'myModalContent.html',
    controller:'ModalInstanceCtrl',
    size: size,
    resolve: {
      user: function () {
        return selectedUser;
      }
    }
  });
}]);

En otro tengo este:

app.controller('ModalInstanceCtrl',['$scope','$uibModalInstance','user', function ($scope, $uibModalInstance, user) {
  $scope.user = user;
  $scope.ok = function () {
    $uibModalInstance.close();
  };
}]);

myModalContent se parece a esto:

<script type="text/ng-template" id="myModalContent.html">
    <div class="modal-header"><h1>EDIT</h1></div>
    <div class="modal-body"> 
        {{patient.patient_id}}
    </div>
    <div class="modal-footer">
        <button class="btn btn-primary" type="button" ng-click="ok()">OK</button>
    </div>
</script>

Sólo le pido a tableCtrl en HTML y llame a open función como esta:

<button class="btn btn-primary" ng-click="open('lg',patient)">Edit</button>

Cuando hago clic en el botón editar de recibir esta excepción:

Unknown provider: $uibModalInstanceProvider <- $uibModalInstance

Vi este plunker, pero no me ayudan.

Lo que está mal?

están incluidos a la dependencia en el módulo ? angular.módulo(“yourapp”, [“interfaz de usuario.bootstrap”, ..] También, ¿qué versión estás usando?+
Intentar cambiar inyectado nombre '$uibModalInstance' a '$modalInstance'
Sí. var app = angular.módulo(‘app’, [‘ngAnimate’, ‘ui.bootstrap’]);
¿Estás seguro de que tienes la última versión de la interfaz de usuario.bootstrap? Por lo que pude ver, cambiar el nombre de $modalInstante $uibModalInstance fueron hace 2 semanas
Ok. Cambio de nombre a ‘$modalInstance ” ayuda 🙂 ! Gracias!

OriginalEl autor Marcinek | 2015-10-31

6 Comentarios

  1. 20

    Tuve el mismo problema, por lo que desde mi solución aquí es cómo usted puede resolver su situación

    app.controller("tableCtrl",['$scope','$http','$uibModal','$log' ,function ($scope, $http,$uibModal,$log) {
      $scope.open = function (size,selectedUser) {
      var uibModalInstance = $uibModal.open({
        animation: $scope.animationsEnabled,
        templateUrl: 'myModalContent.html',
        controller:function($uibModalInstance ,$scope,user){
         $scope.ok = function () {
                $uibModalInstance.dismiss('cancel');
             };
    
        },
        size: size,
        resolve: {
          user: function () {
            return selectedUser;
          }
        }
      });
    }]);
    Yeah! También trabajó para mí! Gracias
    El trabajo para mí, así
    ah realmente grande. cosa real es controller y es divertido
    Una explicación de lo que está pasando, frente a sólo el código, sería bueno

    OriginalEl autor GeorgeKach

  2. 5

    El Problema Identificado es: Mi Control era la reinicialización de la Página HTML. Asegúrese de que el Modal es el controlador de initalized de un lugar

    OriginalEl autor Aashish Patil

  3. 3

    Tuve exactamente el mismo problema. la actualización de angular y de la interfaz de usuario bootstap biblioteca solucionado mi problema. Uso de la glorieta a la actualización de la interfaz de usuario de bootstrap, sugiere que la versión de angular que es trabajar con ella. Espero que me ayudó.

    Yo tenía el mismo problema con angular-bootstrap‘s 0.14.1 versión. He actualizado a 0.14.3 y ahora funciona.

    OriginalEl autor Mohamad Ghafourian

  4. 1

    Tener la función de control, en línea y en el interior de la uibModalInstance definición de objeto que me estaba causando el mismo problema.

    Después de actualizar a 0.14.3, cuando el javascript se uglified, uibModalInstance estaba lanzando desconocido proveedor. Definir el controlador usando la aplicación.controller’, se ha solucionado el problema.

    OriginalEl autor JimmyBob

  5. 1

    He encontrado que este problema se produjo cuando he definido el controlador en la plantilla HTML en lugar de en el modal.abierta la convocatoria

    OriginalEl autor nuander

Dejar respuesta

Please enter your comment!
Please enter your name here