I Angular 1.5 bin mit und ich habe eine Komponente wie dieseWie aus Komponente-Controller für den Zugriff außerhalb
angular
.module('appliactionModule')
.component('umleditor', {
bindings: {
...
},
templateUrl: 'app/uml-editor/umleditor.html',
controller: UmlEditorController
});
function UmlEditorController(...){ ... };
Dann in app/uml-editor/umleditor.html
würde ich den Controller einige Javascript Lage UmlEditorController
wie diese haben gerne zugreifen:
<div class="editor-wrapper" id="editor">
...
<script>
// Accessing Services like this works
var FooService = angular.element('*[ng-app]').injector().get("FooService");
// How do I get the controller?
controller.doSomething();
</script>
</div>
Wie bekomme ich einen Verweis auf meinen Controller von außen, so dass ich es von regulärem JavaScript (nicht Angular) verwenden kann?
angular.element(document.getElementById("editor")).controller('umleditor');
Oder
angular.element(document.getElementById("editor")).isolateScope().$ctrl;
Dies ist eine schlechte Praxis und sollte bei der Prüfung oder als eine schnelle Lösung verwendet werden:
_Einfach ist besser als komplex_. Verwenden Sie stattdessen Winkelservice – hadi
Sie möchten auf die Controller-Instanz oder den Bereich zugreifen? (Es klingt, als ob Sie versuchen, auf den Bereich für den vorhandenen Code zuzugreifen) –
Ja, es war ein alter Code, der abgeschnitten wurde. Ich werde das ändern. Ich würde gerne auf den Controller zugreifen, aber wenn nur der Umfang zugänglich ist, könnte ich vielleicht irgendwie eine Abhilfe schaffen. – sockeqwe