weitergibt Innerhalb des Controllers versuche ich, meinen Code in benannte Funktionen für die Lesbarkeit zu zerlegen. In den parametrisierten benannten Funktionen sind der Bereich und die injizierte Abhängigkeit jedoch alle null. Wie greifen Sie auf diese innerhalb der genannten Funktionen zu. Danke für deine Hilfe.angularjs wie man Parameter an benannte Funktion vom Controller
(
function() {
'use strict';
var moduleName = 'ufsrAppModule';
var controllerName = 'ufsrController';
var dependencyInjection = ['api', 'appHost', 'userAccount', 'userProfileFactory', 'fsrFactory', 'userFsrFactory', internalFunc];
angular.module(moduleName)
.controller(controllerName, dependencyInjection);
function internalFunc(api, appHost, userAccount, userProfileFactory, fsrFactory, userFsrFactory) {
var vm = this; //controller AS in ng-controller, do not use $scope
init(api, appHost, userAccount, userProfileFactory, fsrFactory, userFsrFactory, vm);
}
function init(api, appHost, userAccount, userProfileFactory, fsrFactory, userFsrFactory, vm) {
vm.facilityChanged = facilityChanged;
...
...
function facilityChanged(vm, fsrFactory) {
/*update UI then retrieve services*/
vm.postStatus = undefined;
vm.services = undefined;
vm.roles = undefined;
vm.services = fsrFactory.service().query({
/*parameters*/
FacilityID: vm.facility
})
.$promise.then(
function(data) {
vm.services = data;
});
}
}
})();
Wir haben keine Ahnung, wie 'internalFunc' genannt wird, aber wenn es der' this' innerhalb dieser Funktion bezieht sich nicht auf den Umfang des Controllers. Sie können dies überprüfen, indem Sie eine 'console.log (this);' als erste Zeile in 'internalFunc' hinzufügen und die Ausgabe in der Konsole untersuchen. Ich vermute, dass die Ausgabe überhaupt nicht das ist, was Sie erwarten. Die – Lex
interFunc ist eine Abkürzung I als das letzte Element in dem Array erzeugt, dass der zweite Parameter des Konstruktors der Steuerung. Anstatt nach dem abschließenden "]" am fernen Ende des Controller-Konstruktors zu suchen, wird das ordnungsgemäße Schließen des Annotationsarrays sichergestellt. Es ist ein Stil, den ich von John Papas Angular Style Guide übernommen habe. In console.log() hat alles wie erwartet funktioniert. – user266909