5

Ich verwende angular-ui-router, um meine Zustände in meiner AngularJS-Anwendung zu steuern. In einem Teil verwende ich jquery-file-upload. Das Problem, das ich habe, ist, dass, wenn ich die example given by jquery-file-upload verwenden, ist, dass es den Controller in der Vorlage wie folgt definiert:AngularJS mit Angular-UI-Router und jQuery-File-Upload

<!-- The file upload form used as target for the file upload widget --> 
<form id="fileupload" action="//jquery-file-upload.appspot.com/" method="POST" 
    enctype="multipart/form-data" data-ng-app="demo" 
    data-ng-controller="DemoFileUploadController" data-file-upload="options" 
    data-ng-class="{'fileupload-processing': processing() || loadingFiles}"> 
... 
</form> 

Das Formular-Tag hat data-ng-controller="DemoFileUploadController". In meinem Controller diese erstellt alle Datei-Upload-Methoden erforderlich (wie $scope.submit() und $scope.queue)

Das Problem ist, dass ich meine Controller definieren Winkel-ui-Router Stil, wie dies in meinem app.js:

$stateProvider.state('upload', { 
    url: "/upload", 
    views: { 
    "upload": { 
     templateUrl: "app/partials/upload.html", 
     controller: 'DemoFileUploadController' 
    }, 
    } 
}) 

Aber Dieser Codeabschnitt führt dazu, dass meine Methoden zum Hochladen von Dateien nicht in meinen Controller geladen werden (es gibt keine $scope.submit() und $scope.queue).

Gibt es eine Möglichkeit, dass ich Angular-Ui-Router und Jquery-Datei-Upload zusammen verwenden kann?

+0

Der Datei-Upload der Anweisung verwendet den Bereich: true, der einen neuen isolierten Bereich erstellt. Deshalb ist Ihr Elternbereich nicht verbindlich – koolunix

+1

Ich habe darüber gelesen http://docs.angularjs.org/guide/directive#creating-custom-directives_demo_isolating-the-scope-of-a-directive, aber ich kann nicht mit einer sauberen Lösung, wie ich immer noch den isolierten Bereich der Richtlinie haben kann (was bevorzugt wird) und mit dem Umfang eines anderen Controllers arbeiten kann. – Daan

Antwort

1

Meine Lösung ist, einfach den Controller weglassen, wenn der Zustand definieren:

$stateProvider.state('upload', { 
    url: "/upload", 
    views: { 
    "upload": { 
     templateUrl: "app/partials/upload.html" 
    }, 
    } 
}) 

So kann ich den Controller in meiner Vorlage zuweisen (wie im Beispiel data-ng-controller="DemoFileUploadController"). Ich suche immer noch nach einer Möglichkeit, meinen Controller über den stateProvider zuzuordnen.

Verwandte Themen