2014-02-17 65 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'