Próbuję przenieść kod kątowy do osobnych plików, zanim projekt stanie się zbyt duży.Umieszczanie aplikacji, kontrolerów i usług w oddzielnych plikach
Próbowałem przenieść app
, controllers
i services
do oddzielnych plików, ale błędy przestały wskazywać punkty w kodzie (lub były zbyt ogólne).
Postanowiłem umieścić zawartość pliku na dużej etykiecie <script>
, aby móc pracować z błędami i sprawić, aby działało. Niestety mam natknąć this(Failed instancji modułu protonApp powodu ...) i nie wiem, jak śledzić problem w dół (jestem nowy kątowy)
(function() {
'use strict';
...
}());
Mam cały kod, ponieważ (małe) badania, które zrobiłem mówi, że powinieneś mieć swój kod między tymi, gdy są w oddzielnych plikach.
(function() {
'use strict';
var app = angular.module('protonApp',['ui.router','protonAppControllers','protonAppServices']);
app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
...
}]);
app.value('debug',true);
app.run(function($rootScope,$state,$http,debug,LeftMenuService) {
...
});
}());
(function() {
'use strict';
angular.module('protonAppControllers', ['$scope','$http','LeftMenuService']);
}());
(function() {
'use strict';
angular.module('protonAppServices', ['$rootScope','$http']);
}());
(function() {
'use strict';
angular.module('protonAppControllers').controller('loginController',['$scope','$http','$state',function($scope,$http,$state){
...
}]);
}());
(function() {
angular.module('protonAppControllers').controller('surveyListController',['$scope','$http','LeftMenuService',function($scope,$http,LeftMenuService){
...
}]);
}());
(function() {
'use strict';
angular.module('protonAppControllers').controller('surveyHelpController',['$scope','$http','LeftMenuService',function($scope,$http,LeftMenuService){
...
}]);
}());
(function() {
'use strict';
angular.module('protonAppServices').service('LeftMenuService', function($http,$rootScope){
...
});
}());
EDIT
Dalsze kopania odsłania Nie mogę uzyskać dostępu $rootScope
lub $scope
wewnątrz każdego z moich plików sterownika
kliknąłeś na link błędu w konsoli? To może dać ci więcej informacji o przyczynie błędu. – ThibaudL
W przeciwnym razie w iniekcji modułu nie musisz dodawać $ scope i $ http: angular.module ('protonAppServices', []); Wprowadź te dane do sterownika, ale nie w deklaracji modułu – ThibaudL
. Usuniemy je z deklaracji modułu. Dzięki {Thanks} Nie wiedziałem, że – Sevenearths