Я новичок в использовании angularjs. Я создаю директивы и службы в отдельных файлах. Когда я включаю службу в директиву, появляется Ошибка: [$ injector: modulerr].
Вот моя файловая структура и файлы: -
Директива: - video_course.js
videoCourseApp.directive('mcssForm' ,function(){
return{
restrict : 'C',
templateUrl : 'assets/template_blocks/mcss_form.html',
link: function(scope,element,attribute){
}
};
});
videoCourseApp.directive('addNewMsccOption', function(incrementId){
return{
replace: true,
restrict : 'C',
template : '<li><input name="test" type="radio" ng-model="videoCourseQuestions.mcss_option"/><input ng-model="videoCourseOptions.Option{{newid}}" type="text" class="option" placeholder = "Enter your Option{{newid}}" />',
link: function(scope,element,attribute){
scope.newid = incrementId.getAndIncrement;
}
};
});
И вот мой служебный файл: - videoservice.js
videoCourseApp.service('incrementId', function(){
var index = 4;
this.getAndIncrement = function () {
return index++;
};
});
И наконец, вот мой основной файл app.js, где определены все методы: -
var videoCourseApp = angular.module('videocourse' , ['ngDragDrop','mcssForm','addNewMsccOption']);
videoCourseApp.controller('video_course_add_question',function($scope, $timeout, $compile){
});
Вот мой файл index.html: ->
<script src="assets/js/video_course/app.js"></script>
<script src="assets/js/directives/video_course.js"></script>
<script src="assets/js/services/video_services.js"></script>
Это даст ошибку модуля инжектора. Где проблема и как я могу управлять этими зависимостями надлежащим образом.
Ваша проблема связана с тем, как вы определяете свой модуль. Вы добавляете директивы в зависимости от модуля videoCourseApp, когда все эти директивы уже находятся в одном модуле. Только модули, определенные словом модуля, могут быть введены в качестве зависимостей для модуля. Поэтому попробуйте удалить эти директивы из защиты модуля.
Надеюсь, это поможет.
Ваш код должен выглядеть следующим образом:
var videoCourseApp = angular.module('videocourse' , ['ngDragDrop']);
videoCourseApp.controller('video_course_add_question', ['$scope', '$timeout', '$compile', function($scope, $timeout, $compile){
}]);
videoCourseApp.service('incrementId', function(){
var index = 4;
this.getAndIncrement = function () {
return index++;
};
});
videoCourseApp.directive('addNewMsccOption', ['incrementId', function(incrementId){
return{
replace: true,
restrict : 'C',
template : '<li><input name="test" type="radio" ng-model="videoCourseQuestions.mcss_option"/><input ng-model="videoCourseOptions.Option{{newid}}" type="text" class="option" placeholder = "Enter your Option{{newid}}" />',
link: function(scope,element,attribute){
scope.newid = incrementId.getAndIncrement;
}
};
}]);
videoCourseApp.directive('mcssForm' ,function(){
return{
restrict : 'C',
templateUrl : 'assets/template_blocks/mcss_form.html',
link: function(scope,element,attribute){
}
};
});
Обратите внимание на настройку вложения и минимизации зависимостей в контроллерах и определениях директив.