So rufen Sie Modul-factory aus einem anderen Modul in Angular.js?
Habe ich Probleme mit Aufruf einer Fabrik in einem Modul von einem anderen Modul. Ich bin mit angular.js + require.js.
Hier ist mein code
Modul 1:
define(['angular', 'app/admin/app.admin', 'app/admin/account/services'], function (angular, app, services) {
app.controller('MainCtrl', ['$scope', 'providerService', function ($scope, providerService) {
$scope.showMe = false;
$scope.provider = providerService.Providers;
}]);
return app;
});
Modul 2
define(['angular', 'app/admin/config/index'], function (angular) {
'use strict';
var service = angular.module('app.admin.account.services', []);
service.factory('providerService', ['app.admin.config',
function (config) {
var providers = [
{ name: 'google+', url: config.AUTH_URL + '/google' },
{ name: 'facebook', url: config.AUTH_URL + '/facebook' }
];
return {
Providers: providers
};
}
]);
return service;
});
Wenn ich versuche zu nennen, providerService, die in Modul 2 aus Modul 1. Ich bekam eine Fehlermeldung sagen, providerService ist nicht da. Kann mir jemand sagen was ich falsch gemacht hier?
Cheers
- Wo ist der app-Modul definiert? Es ist nicht in diesem code. Wenn Sie nicht bereits getan haben, dann müssen Sie erklären
app.admin.account.services
und eine Abhängigkeit vonapp
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es völlig in Ordnung, zu verwenden, RequireJS und AngularJS zusammen, aber der Begriff "Modul" hat unterschiedliche Bedeutung zwischen den beiden und ist ein wenig verwirrend, wenn es um Abhängigkeiten.
In RequireJS ein "Modul" ist eine typische Javascript-Datei kapselt ein Stück code. Definieren Sie die Abhängigkeiten mithilfe von RequireJS, um die pass in/um andere Module als Abhängigkeiten und eine korrekte script laden bestellen.
In AngularJS der Begriff "Modul" konkret bedeutet, eine AngularJS "Modul", das ist ein container für eine Reihe von controller/Dienstleistungen/Richtlinie etc. Erklärungen.
Verwenden Sie RequireJS zu definieren, die Reihenfolge und Abhängigkeiten der Skript-Dateien. Müssen Sie dann auch erzählen Winkel-die "Eckigen Module" das Modul hängt im wesentlichen importieren alle Controller/services/Richtlinien zusammen mit ihm.
In 'app/admin/app.admin' stellen Sie sicher Sie definieren die Abhängigkeiten für Ihre AngularJS-Modul, indem in der 'app.admin.Konto.Dienstleistungen' - Modul als zweiten parameter, z.B.
Wird dann importieren Sie die 'app.admin.Konto.Dienstleistungen' - Modul in deinem main-Modul machen Sie Ihren
providerService
erhältlich für dependency injection.