Es hängt davon ab, ob Sie controller
vs controllerAs
Syntax verwenden.
Nehmen wir an, Sie haben diese Controller:
app.controller('MyController', function() {
$scope.alert = function(input) {
alert(input);
};
});
Wenn Sie Controller verwenden Sie diese Funktionen Umfang hinzuzufügen zugänglich von UI zu sein.
<div ng-controller="MyController" ng-click="alert('hello')"></div>
Jetzt wird dies funktioniert schön und Alarm wird angezeigt. Wenn Sie ControllerSyntax verwenden, können Sie einfach this.
verwenden und Ihre Methoden zu Ihrem this
Controller hinzufügen.
app.controller('MyController', function() {
var vm = this;
vm.alert = function(input) {
alert(input);
};
});
Jetzt in Ihrem html Sie diese verwenden müssen:
<div ng-controller="MyController as vm" ng-click="vm.alert('hello')"></div>
Sie nicht den Kontext erwähnt haben ... Haben Sie diese Funktion außerhalb des Controllers verweisen müssen? Müssen Sie die Funktion als Argument übergeben? Sie könnten einfach 'function getJobs() {/ * code * /}' ausführen. –
Ich war ehrlich gesagt nicht sicher über den Unterschied, aber jetzt, dank der Rückmeldungen von allen, verstehe der $ scope die Verwendung der Funktion in der View und die normale Funktionsdeklaration wird nur innerhalb des Bereichs der Javascript-Dateien verwendet! – DDelgro