0

Я использую require.js модуляризировать код и получить следующее сообщение об ошибке:angular.injector ([ «MODULENAME»]) получаем («имя») работает на заводе, а не для службы

angular.js:68 Uncaught Error: [$injector:unpr] Unknown provider: $filterProvider <- $filter <- srvcConverter 

здесь это модуль обслуживания:

define('services/converter', ['angular'], function(angular) { 

    var moduleName = 'mdlConverter', 

    angular.module(moduleName, []).service('srvcConverter', ['$filter', function($filter) { 
     this.formatDateTime = function(value) { 
      if (value) { 
       return $filter('date')(new Date(value), 'medium'); 
      } 
     }; 
    }]); 
    return moduleName; 
}); 

и здесь завод модуль:

define('factories/utils', ['angular', 'factories/validator'], function(angular, fcValidator) { 

    var moduleName = 'mdlUtils'; 

    angular.module(moduleName, [fcValidator]).factory("fctrUtils", ['fctrValidator', function(fctrValidator) { 

     return { 
      'capitalize' : function(str) { 
       return typeof str === 'string' && str.length ? (str.charAt(0).toUpperCase() + str.slice(1)) : str; 
      } 
     }; 
    }]); 
    return moduleName; 
}); 

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

define(['app', 'services/converter', 'factories/utils'], function(app, converterService, utils) { 

    var utils = angular.injector([utils]).get('fctrUtils'); // This works fine. 
    var converter = angular.injector([converterService]).get('srvcConverter'); // This throws mentioned error 

    function TableController($scope) { 
     $scope.draw = function() {} 
    } 
    app.register.controller('TableController', TableController); 

    return TableController; 
}); 

ответ

1

'$ filter' зависимость вызывала проблему.

Просто добавление 'ng' в качестве зависимости от модуля разрешило проблему.

angular.module(moduleName, ['ng']).service('srvcConverter', ['$filter', function($filter) { 

}]); 
+0

Отлично, спасибо, что нашли время, чтобы отправить ответ – Will