2013-10-17 14 views
25

tôi đang cố gắng sử dụng các chỉ thị modal từ ui-bootstrap 0,6ui bootstrap modal của 'không được định nghĩa'

đây là plunker mặc định làm việc từ trang ui-bootstrap:

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

bây giờ, tôi đã cố gắng để làm cho phong cách mã hóa phù hợp với phong cách góc hạt bao gồm nó trong một ứng dụng như thế này:

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'); 
    }; 
}]); 

nhưng lỗi đó gây ra lỗi ReferenceError: ModalInstanceCtrl is not defined

làm cách nào tôi có thể thực hiện công việc này bằng cách xác định bộ điều khiển?

Trả lời

51

Cung cấp tên điều khiển như Chuỗi, chính xác như bạn sẽ làm gì trong định nghĩa đường, chỉ thị v.v .:

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

Cảm ơn bạn! Mất khoảng 2 giờ để tìm ra đây là vấn đề của tôi. – brutalhonesty

+2

Derp, bingo. Đây là lỗi trong tài liệu, nó ném cho tôi một vòng lặp quá :( –

+3

Tôi đã cố gắng làm, gọi bộ điều khiển bằng chuỗi, nó không hoạt động –

1

Bạn có thể sử dụng dấu ngoặc là câu trả lời khác cho thấy, hoặc bạn cũng có thể làm như ví dụ trong tài liệu và xác định biến:

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

Các vấn đề liên quan