2014-02-17 15 views
8

Meine Angular-Anwendung hat eine Reihe von Modalitäten, und ich habe AngularUI, um die modale Direktive bereitzustellen.AngularUI separate Dateien für modale Controller

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

Bisher habe ich mehrere Hauptcontroller, und diese sind alle in der app.js Datei als Routen.

$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' 

Das funktioniert gut.

Dann habe ich eine Funktion erstellt, die ein Modal aufruft, und das Modal hat einen Instanz-Controller von ConfigureModalCtrl. Ich hatte dies zunächst am unteren Rand der aufrufenden Controller-Datei, und es funktionierte OK.

$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 

Jetzt habe ich den modalen Instanz-Controller in seine eigene Datei verschoben, aber die aufrufende Funktion kann es nicht finden.

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.") 

Fehlermeldung

Error: Unknown provider: ConfigureModalCtrlProvider <- ConfigureModalCtrl 

ähnliche Frage, aber mein Problem nicht lösen. How to create separate AngularJS controller files?

Also, wie kann ich dieses Problem lösen, und warum tritt dies nicht für die anderen Controller (nicht-modale Instanz) auf? Ist es, weil sie in den Routen benannt sind?

Alle Empfehlungen zur Codierung Stil sind auch willkommen ... Vielen Dank für das Lesen.

Antwort

11

Versuchen Sie, den Controller als String zu setzen - ich hatte ein ähnliches Problem.

controller: 'ConfigureModalCtrl' 
Verwandte Themen