0

コントローラーとサービスを組み込んだ timer というモジュールがあります。これは私のmodule.jsファイルです。

(function () {
  'use strict';

  angular.module('timesheet.timer',[
      'timesheet.timer.controllers',
      'timesheet.timer.services'
  ]).filter('digits', function() {
    return function(input) {
       if (input < 10) input = '0' + input;

      return input;
    }
  });

      angular.module('timesheet.timer.controllers',[]);
      angular.module('timesheet.timer.services',[]);
 })();

フィルターは私が必要とするカスタム フィルターです。無視してください。

私が持っている私のサービスでは

(function () {
    'use strict';

    angular
        .module('timesheet.timer.services')
        .factory('Timer', Timer);

    Timer.$inject = ['$http'];

    function Timer($http){
        var timer = {
            get: get
        };
        return timer;

       function get(dateString,emp_id){
             return $http.get("/timesheet/employee/"+emp_id+"/tasks/?date=" + dateString);
        }
    }

});

私のメインの app.js は次のようになります。

(function () {
  'use strict';

  angular
    .module('timesheet', [
      'angular.filter',
      'chart.js',
        'ngCookies',
         'ngStorage',
      'ui.bootstrap',
      'daterangepicker',
      'xeditable',
      'timesheet.routes',
      'timesheet.timer',
      'timesheet.authentication'


    ]).factory('httpRequestInterceptor',['$cookies', function ($cookies) {
        return {
            request: function (config) {
                var token = $cookies.get('Token');
                if(token) {
                    config.headers['token'] = token;
                }
                return config;
            }
        };
    }]).config(['$httpProvider',function($httpProvider) {
       $httpProvider.interceptors.push('httpRequestInterceptor');
      }])
      .run(function(editableOptions) {
         editableOptions.theme = 'bs3'; // bootstrap3 theme. Can be also 'bs2', 'default'

    });

  angular
    .module('timesheet.routes', ['ngRoute']);
})();

コントローラーの依存関係としてタイマーを追加するとすぐに、エラー Error: $injector:unpr Unknown Provider が表示されます

私のコントローラーはこんな感じです

    (function () {

        angular.module('timesheet.timer.controllers')
            .controller('ManualTableController',ManualTableController);

        ManualTableController.$inject=['$scope','$filter','$http','$uibModal','$rootScope','$filter','Timer'];

        function ManualTableController( $scope, $filter, $http, $uibModal, $rootScope){

            $rootScope.totalDuration = "";
            $scope.noTask = false;
            $scope.error = false;
            $rootScope.tasks = "";
            var emp_id = $rootScope.emp_id;
            $scope.dateString = getDateString($scope.dt);
            $scope.date = angular.copy($scope.dt);

            Timer.get($scope.dateString,emp_id).then(timerSuccessFn, timerErrorFn);
            function timerSuccessFn(data, status, headers, config) {
            console.log(data);
           }
}
});   

私は何を間違っていますか?ファクトリがコントローラーに挿入されないのはなぜですか。また、base.html にすべての JS ファイルを含めました。

4

2 に答える 2