2016-04-16 10 views
0

Wie kann ich die Funktion eines Controllers über die Konsole meines Browsers aufrufen, wenn ich nicht die Syntax $scope für meine Funktionen verwende, sondern die Syntax controller as. Es gibt keine ng-controller injiziert, so dass ich die vorgeschlagene Methode this SO question nicht verwenden kann. Ich verwende die $stateProvider von ui-router meinem Controller auf einen Blick festgelegt wie folgt:Rufen Sie die Angular Controller-Funktion vom Browser auf

$stateProvider.state('contacts', { 
    template: ..., 
    controller: 'ContactsCtrl as contact' 
}) 

Antwort

0

Durch Browser ich Sie Ihren HTML-Code bedeuten ich davon aus. Wie sind die Scope-Funktionen in Ihrer Controller-Definition definiert?

Incase Sie ein virtuelles Modell verwenden, wie in

function ContactsCtrl(){ 
    var vm = this; 
    vm.scopeFn = function(){ 
    //Do sumthin 
    } 
} 

Dann können Sie einfach das tun aus dem html:

<button ng-click="contact.scopeFn()" /> 

aktualisieren: JS Mit dem Browser, wenn Sie wie in meinen wie innerhalb <script> Markierung dann tun,

function ContactsCtrl(){ 
    var vm = this; 
    vm.scopeFn = function(){ 
    //Do sumthin 
    } 
    window.globalFn = vm.scopeFn; 

} 

Und dann rufen sie aus dem Browser als:

<script> 
    //on some event : 
    window.globalFn(); 
</script> 

Ich hoffe, das hilft. Obwohl ich nicht empfehlen würde, eine Controller-Funktion außerhalb des eckigen App-Moduls verfügbar zu machen. Aber wenn Sie eine temporäre Reparatur wünschen, gehen Sie voran und verwenden Sie diesen Ansatz.

+0

Ich meine die JavaScript-Konsole des Browsers – niklas

+0

Schauen Sie sich das Update auf die Antwort. Ich hoffe, das ist was du willst. – jackOfAll

Verwandte Themen