2013-10-17 10 views
25

próbuję użyć modalne dyrektywę od ui-bootstrap 0,6UI Bootstrap modalnej za 'nie jest zdefiniowane'

tutaj jest domyślnym roboczego plunker ze strony UI-bootstrap:

http://plnkr.co/edit/JGBiBSeRqOnwRhYA9py8?p=preview

teraz, próbowałem zrobić styl kodowania pasuje styl kątowe-siewny umieścić go w jednej aplikacji, takich jak ten:

http://plnkr.co/edit/Y59rwlcNpQdijKtmjOPy?p=preview

angular.module('MyModal', ['ui.bootstrap', 'MyModal.controllers']); 

angular.module('MyModal.controllers', []) 
    .controller('ModalDemoCtrl', [ '$scope', '$modal', '$log', function ($scope, $modal, $log) { 
    $scope.items = ['item1', 'item2', 'item3']; 

    $scope.open = function() { 
     var modalInstance = $modal.open({ 
      templateUrl: 'myModalContent.html', 
      controller: ModalInstanceCtrl, 
      resolve: { 
       items: function() { 
       return $scope.items; 
       } 
      } 
     }); 

     modalInstance.result.then(function (selectedItem) { 
      $scope.selected = selectedItem; 
     }, function() { 
      $log.info('Modal dismissed at: ' + new Date()); 
     }); 
    }; 
}]) 
.controller('ModalInstanceCtrl', [ '$scope', '$modalInstance', 'items', function ($scope, $modalInstance, items) { 
    $scope.items = items; 
    $scope.selected = { 
     item: $scope.items[0] 
    }; 

    $scope.ok = function() { 
     $modalInstance.close($scope.selected.item); 
    }; 

    $scope.cancel = function() { 
     $modalInstance.dismiss('cancel'); 
    }; 
}]); 

ale to daje błąd ReferenceError: ModalInstanceCtrl is not defined

jaki sposób można dokonać tej pracy przy użyciu tego sposobu definiowania kontrolerów?

Odpowiedz

51

Podaj nazwę kontrolera jako String, dokładnie tak, jak to zrobić w definicji trasy, dyrektyw itp .:

var modalInstance = $modal.open({ 
     templateUrl: 'myModalContent.html', 
     controller: 'ModalInstanceCtrl', 
     resolve: { 
      items: function() { 
      return $scope.items; 
      } 
     } 
    }); 
+3

dziękuję! Zajęło to około 2 godzin, aby dowiedzieć się, że to był mój problem. – brutalhonesty

+2

Derp, bingo. Jest to podsłuchane w dokumentach, rzuciło mnie też na pętlę :( –

+3

Próbowałem, dzwoniąc do kontrolera za pomocą łańcucha, to nie działa –

1

można wykorzystywać cytaty jak sugeruje druga odpowiedź, czy można to zrobić również jako przykład w docs i zdefiniować zmienną:

var ModalInstanceCtrl = function ($scope, $modalInstance, items) { ... }

Powiązane problemy