2016-04-20 20 views
0

Aufruf Ich habe einen Controller wie folgt aus:eine Steuerung von einem anderen in AngularJS

.controller('candidatureStartCtrl', function ($scope, $parse, fileUploadCtrl) { 

//...code 
     fileUploadCtrl.uploadFile($scope.identityDocUpload); 
//...code 
} 

in candidatureStartCtrl ich einen anderen Controller bin ruft die fileUploadCtrl seine Funktion uploadFile() zu verwenden ist.

aber ich habe diesen Fehler in der Konsole, auch wenn ich die fileUploadCtrl js in der index.html importiert:

Error: [$injector:unpr] Unknown provider: fileUploadCtrlProvider <- fileUploadCtrl <- CandidatureStartCtrl 

dies eine Geige mit dem gleichen Konzept ist:

http://jsfiddle.net/7tzXh/143/

Wie kann ich das lösen?

+0

Nach dem Fehler Ihre DateiUploadCtrl ist undefiniert. Stellen Sie sicher, dass Sie die richtige Referenz hinzugefügt haben – Shreyas

+0

@Shreyas wie gesagt Ich habe die 'fileUploadCtrl' js in die index.html importiert –

+0

ist es in der richtigen Reihenfolge? – Shreyas

Antwort

1

Sie können keine Controller direkt injizieren, ohne $ Controller zu verwenden, wie in einem der Kommentare zu der Frage erwähnt. Wenn Sie Daten teilen müssen, können Sie factory oder service verwenden.

finden Sie die Arbeits Geige hier:

http://jsfiddle.net/7tzXh/144/

+0

Danke Ich habe diese Lösung schon einmal benutzt und ich wollte fragen, ob ich einen Controller in einem anderen verwenden kann, aber Controller bekommen Müll gesammelt auf Route Änderungen mit einem Service/Fabrik ist die beste Idee. –

0

$controller verwendet wird, eine Steuerung in eine andere zu injizieren. Ich habe eine einfache fiddle erstellt, um es klar zu machen.

Verwandte Themen