ayrı dosyalar halinde bölünmüş zaman benim denetleyicileri bulamıyorum: Hala ayrı dosyalar halinde benim denetleyicileri bölmek mümkün değilim Ancak How to create separate AngularJS controller files?Eğik Burada da benzer bir soru için yayınlanmıştır cevabı takip ediyordu
. Tek bir denetleyiciyi geri kalanından kendi dosyasına ayırmakla başladım, ancak şimdi denetleyicilerin hiçbiri yüklenmiyor.
Denetleyiciler dosyalarımdan önce gelen js dosyalarım, benim app.set ile benim index.html dosyasında düzgün sırada yükleniyor.
<script src="libraries/jquery/1.11.3/jquery-1.11.3.min.js"></script>
<script src="libraries/angular/1.4.8/angular.min.js"></script>
<script src="libraries/angular-ui-router/0.2.14/angular-ui-router.min.js"></script>
<script src="libraries/angular-scroll/angular-scroll.min.js"></script>
<script src="libraries/uiboostrap/0.14.3/ui-bootstrap-tpls-0.14.3.min.js"></script>
<script src="libraries/dirPagination/dirPagination.js"></script>
<script src="libraries/angular-loading-bar/loading-bar.js"></script>
<script src="js/app.js"></script>
<script src="js/app.services.js"></script>
<script src="js/app.controllers.js"></script>
<script src="partials/events/StageBarCtrl.js"></script>
Benim app.js dosyası:
angular.module('myWebApp.controllers',[]).
controller('TopNavCtrl', function ($scope, $location) {
}).
controller('scrollCtrl', function($scope, $document) {
}).
controller('AdminTableCtrl', function ($scope, coreAPIservice) {
}).
controller('EditDivisionsCtrl', function ($scope, coreAPIservice) {
}).
controller('EditDepartmentsCtrl', function ($scope, coreAPIservice) {
}).
controller('EditTeamsCtrl', function ($scope, coreAPIservice) {
}).
controller('HomePageCtrl', function ($scope, $location, $http) {
}).
controller('EventCtrl', function ($scope, $window, $location, $http, coreAPIservice) {
}).
controller('UserProfilesCtrl', function ($scope, $location, $http, coreAPIservice) {
}).
controller('TeamProfilesCtrl', function ($scope, $location, $http) {
}).
controller('DepartmentProfilesCtrl', function ($scope, $location, $http) {
}).
controller('DivisionProfilesCtrl', function ($scope, $location, $http) {
}).
controller('NotFoundCtrl', function ($scope, $location, $http) {
});
Ondan ayrıldıktan kontrolör:
var app = angular.module('myWebApp', [
'myWebApp.services',
'myWebApp.controllers',
'ui.router',
'duScroll',
'ui.bootstrap',
'angularUtils.directives.dirPagination',
'angular-loading-bar'
]);
app.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/404');
$stateProvider
.state('home', {
url: '/',
templateUrl: 'partials/home.html',
controller: 'HomePageCtrl'
})
.state('event', {
url: '#/events/event',
views: {
'': {
templateUrl: 'partials/events/event.html',
controller: 'EventCtrl'
},
'[email protected]' : {
templateUrl: 'partials/events/stage-bar.html',
controller: 'StageBarCtrl'
}
}
})
.state('userProfiles', {
url: '/admin/users',
templateUrl: 'partials/admin/user-profiles.html',
controller: 'UserProfilesCtrl'
})
.state('editTeams', {
url: '/admin/teams',
templateUrl: 'partials/admin/edit-teams.html',
controller: 'TeamProfilesCtrl'
})
.state('editDepartments', {
url: '/admin/departments',
templateUrl: 'partials/admin/edit-departments.html',
controller: 'DepartmentProfilesCtrl'
})
.state('editDivisions', {
url: '/admin/divisions',
templateUrl: 'partials/admin/edit-divisions.html',
controller: 'DivisionProfilesCtrl'
});
}]);
Benim asıl kontrolör dosya app.controllers.js bu (kısalık için elided içindekiler) benziyor kendi dosya içine bu gibi görünüyor:
angular.module('myWebApp.controllers', []).
controller('StageBarCtrl', function($scope, $window, $location, $http, eventFactory) {
});
Aldığım hata: "Argüman 'TopNavCtrl' bir işlev değil, undefined", index.html içinde karşılaşılan ilk denetleyicidir. ikinci parametre (alıcı) olarak []
olmadan
angular.module('myWebApp.controllers').
controller('StageBarCtrl', function($scope, $window, $location, $http, eventFactory) {
// ...
});
Not, angular.module('myWebApp.controllers')
: Eğer ayrı dosyalarda denetleyicileri tanımlarken
Evet, 5 saniye boyunca beni yenersiniz, angular.module işlevi bir modül tanımlarken bir setter ([] ile) veya modül tanımlarını ([] olmadan) alırken bir alıcı olabilir. – slackmart