2014-02-17 46 views
8

我的Angular應用程序有一些模式,我有AngularUI提供模態指令。AngularUI獨立文件模式控制器

http://angular-ui.github.io/bootstrap/

到目前爲止,我有幾個主控制器,而這些都在app.js文件路徑。

$routeProvider.when '/dashboard',   templateUrl: '/templates/dashboard/dashboard.html', controller: 'DashboardController' 
$routeProvider.when '/dataset/:panel_id', templateUrl: '/templates/dataset/dataset.html', controller: 'DatasetController' 
$routeProvider.when '/batches/:panel_id', templateUrl: '/templates/design/design.html',  controller: 'PanelController' 

這工作正常。

然後我創建了一個調用模態的函數,並且該模態具有一個實例控制器ConfigureModalCtrl。我最初在調用控制器文件的底部有這個,它工作正常。

$scope.invokeConfigureModal = (assay_id) -> 
    $scope.assay_id = assay_id 
    $scope.primer3 = $scope.getPrimer(assay_id) 
    modalInstance = $modal.open(
    templateUrl: '/templates/configure_modal/configure_modal.html' 
    controller: ConfigureModalCtrl 
    windowClass: 'configure-dialog' 
    resolve: 
      primer3: -> 
      $scope.primer3 
    ) 
    modalInstance.result.then ((primer3) -> 
     $scope.primer3 = primer3 
     return 
    ), -> 
     return 

現在我已經將模態實例控制器移到它自己的文件中,但調用函數找不到它。

angular.module('assaypipelineApp').controller "ConfigureModalCtrl", ($scope, $modalInstance, primer3) -> 
    $scope.primer3 = primer3['data'] 
    $scope.ok = -> 
    $modalInstance.close $scope.primer3 
    return 
    $scope.cancel = -> 
    $modalInstance.dismiss "cancel" 
    serverErrorHandler = -> 
    alert("There was a server error, please reload the page and try again.") 

錯誤消息

Error: Unknown provider: ConfigureModalCtrlProvider <- ConfigureModalCtrl 

類似的問題,但並沒有解決我的問題。 How to create separate AngularJS controller files?

那麼,我該如何解決這個問題,爲什麼這不會發生其他(非模態實例)控制器?是因爲他們是在路線中命名的嗎?

任何關於編碼風格的建議也值得歡迎......感謝您閱讀本文。

回答

11

嘗試把控制器作爲一個字符串 - 我有一個類似的問題。

controller: 'ConfigureModalCtrl'