2013-10-17 17 views
25

我試圖使用從模態指令UI,引導0.6UI自舉模式的控制器「沒有定義」

這裏是從UI的引導頁面的工作默認plunker:

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

現在,我試圖使編碼風格適合的角度種子風格,包括它在一個應用程序是這樣的:

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

,但它給了一個錯誤ReferenceError: ModalInstanceCtrl is not defined

我怎樣才能使用定義控制器的這種方式這項工作?

回答

51

提供控制器名稱爲字符串,完全按照自己的路線定義,指令等:做

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

謝謝!花了大約2個小時才發現這是我的問題。 – brutalhonesty

+2

Derp,賓果。這是在文檔中的錯誤,它把我扔了一個循環:( –

+3

我試着做,通過字符串調用控制器,它不起作用 –

1

爲對方的回答表明,你可以使用引號,或者你也可以做的例子在文檔中定義變量:

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