【问题标题】:angular.injector(['moduleName']).get('name') works for Factory and not for Serviceangular.injector(['moduleName']).get('name') 适用于工厂而不适用于服务
【发布时间】:2016-10-17 17:50:42
【问题描述】:

我正在使用 require.js 来模块化代码并得到以下错误:

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

【问题讨论】:

    标签: javascript angularjs angular-controller angularjs-injector


    【解决方案1】:

    '$filter' 依赖导致了这个问题。

    只需添加 'ng' 作为模块依赖即可解决问题。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-05
      • 1970-01-01
      • 2018-02-14
      • 2020-09-03
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多