Ангулайс использует или вводит услуги в директивах

0

Я новичок в использовании 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>

Это даст ошибку модуля инжектора. Где проблема и как я могу управлять этими зависимостями надлежащим образом.

  • 0
    Включили ли вы в себя videoservice.js` index.html
  • 0
    Да, я включил туда: - @PankajParkar
Показать ещё 4 комментария
Теги:
angularjs-directive
angularjs-service

2 ответа

2
Лучший ответ

Ваша проблема связана с тем, как вы определяете свой модуль. Вы добавляете директивы в зависимости от модуля videoCourseApp, когда все эти директивы уже находятся в одном модуле. Только модули, определенные словом модуля, могут быть введены в качестве зависимостей для модуля. Поэтому попробуйте удалить эти директивы из защиты модуля.

Надеюсь, это поможет.

0

Ваш код должен выглядеть следующим образом:

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){
        }
    };
});

Обратите внимание на настройку вложения и минимизации зависимостей в контроллерах и определениях директив.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню