2017-04-26 4 views
0

Wie kann ich einige Funktion in eckigen von Javascript nennen. Ich habe einen Hauptcontroller mit Funktion, die ich von JavaScript-Code aufrufen möchte. Zum Beispiel habe ich in meiner Controller-Datei Code wie dieseSo rufen Sie die angulare Bereichsfunktion von Javascript auf?

app.controller('mainCtrl',function($scope,$http){ 
    //some code 
    $scope.someFunction=function(value){ 
     // Need value to be accessed here 
    } 
}); 

Jetzt in meiner Code-Funktion für den Aufruf ist view.html Datei, und unten im einschließlich controller.js. Ich habe diese Methode einfach so genannt. someFunction(value);

+0

Lesen Sie die Dokumentation auf [Angular Dienstleistungen] (https://docs.angularjs.org/guide/services) –

+0

in der Schaltfläche fügen Sie das Attribut ng-click = "Funktion ('value')" –

+0

Sie sollte nur praktische, beantwortbare Fragen stellen, die auf tatsächlichen Problemen basieren, mit denen Sie konfrontiert sind. Sie erhalten viel bessere Antworten, wenn Sie Code bereitstellen, mit dem die Benutzer das Problem reproduzieren können. Siehe [Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels] (http://stackoverflow.com/help/mcve). – georgeawg

Antwort

0

Sie müssen eine Art Richtlinie verwenden - ng-click, ng-init, ng-change usw. Sie können diese nackten Funktionen außerhalb des Winkelumfang nicht darauf zugreifen.

0

Sie können es nennen aus dem Inneren der Controller wie folgt:

app.controller('mainCtrl',function($scope,$http){ 
    //some code 
    $scope.someFunction=function(value){ 
     // Need value to be accessed here 
    } 

    $scope.someFunction(34); 
}); 

Wenn Sie es von einem anderen Controller aufrufen möchten, können Sie ein Ereignis passieren

// In your controller 
$scope.$on('myEvent', function(event, arg) { 
    $scope.someFunction(arg); 
}); 

.... 

// From the second controller 
$scope.emit('myEvent', 34); 
-1

aus Ihrem HTML-Seite Sie müssen das JavaScript ausführen, nachdem die Seite geladen wurde.

<script type="application/javascript"> 
    document.addEventListener("DOMContentLoaded", function(event) { 
     //do work 
    }); 
</script> 

Sobald Sie das haben, müssen Sie Ihr Angular-Modul mit Ihrem App-Namen erhalten.

Sobald Sie das Modul haben, können Sie eine Laufoperation ausführen, die Ihnen erlaubt, Fabriken, Dienstleistungen und Konstanten einzuspritzen. Dinge wie Controller, Direktiven und Komponenten sind nur für HTML-Nutzung.

<script type="application/javascript"> 
    document.addEventListener("DOMContentLoaded", function(event) { 
     var app = angular.module('myApp'); 
     app.run(['myService', function(myService) { 
      // do your stuff here. 
     }); 
    }); 
</script> 

können Sie teilen sich nun die myService Daten zwischen der HTML-Seite und dem Controller, indem auch myService in Ihrem Controller zu injizieren.

0

Sie können eckige Anweisungen verwenden, um Ihren Controller aus Ihrer Sicht aufzurufen.

Wenn Sie beispielsweise eine Schaltfläche in Ihrer Ansicht haben, können Sie eine Funktion aufrufen, die in Ihrem Controller definiert ist und zum Bereich hinzugefügt wird.

app.controller('mainCtrl',function($scope){ 
    //some code 
    $scope.someFunction=function(value){ 
     console.log('hello ' + value); 
    } 
}); 

Ihre view.html

<a ng-click="someFunction('world')">Call</a> 
0

Sie die Funktion innerhalb des controller.See unten aufrufen kann, ist die letzte Zeile in Controller-Definition der Funktionsaufruf. Es wird jedes Mal aufgerufen, wenn der Controller aufgerufen wird.

app.controller('mainCtrl',function($scope,$http){ 
    //some code 
    $scope.someFunction=function(value){ 
     // Need value to be accessed here 
    } 

$scope.someFunction(); 
}); 
Verwandte Themen