2017-05-10 9 views
1

だから私は得る:角1.5不明なプロバイダ

Error: $injector:unpr
Unknown Provider Unknown provider: canOrganiseProvider <-

、私は、単純な私はそれがうまく動作テストしたこのエンドポイントを持って、そしてちょうど私がナビゲートする前にこの問題を解決したい、なぜ私が把握することはできませんルート、それはcanOrganise、任意のアイデアを解決しようとするときに動作しませんなぜですか?

ありがとうございます。

コードにジャンプします。

エンドポイント。

[HttpGet] 
     [Route("{eventCode}/isOrganiser")] 
     [Audit(AuditLog.Nothing)] 
     public IHttpActionResult HasOrganisationalRights([FromUri] string eventCode) 
     { 
      var response = Resolve<ICanManageEventOrganisationRightsOperation>().CanOrganiseEvent(new CanManageEventOrganisationRequest 
      { 
       EventCode = eventCode, 
       CurrentUser = CurrentUser, 
      }); 

      return CreateResponse(response,() => response.CanOrganise); 
     } 

角度ルーティング:

angular.module('Events').config(['$routeProvider', 
    function ($routeProvider) { 
     $routeProvider 
    .when('/event/:event/attendees', { 
         templateUrl: '/Content/AngularApp/Attendees/List/Template.html', 
         controller: 'AttendeesController', 
         resolve: { 
          'data': ['$route', 'AttendeesService', function ($route, AttendeesService) { 
           return AttendeesService.getAttendees($route.current.params.event).then(function (response) { 
            return response.data; 
           }); 
          }], 
          'canManage': ['$route', 'AttendeesService', function ($route, AttendeesService) { 
           return AttendeesService.canManage($route.current.params.event).then(function (response) { 
            return response; 
           }); 
          }], 
          'canOrganise': ['$route', 'AttendeesService', function ($route, AttendeesService) { 
           return AttendeesService.isOrganiser($route.current.params.event).then(function (response) { 
            return response; 
           }); 
          }], 
          'grouped': ['$route', 'AttendeesService', function ($route, AttendeesService) { 
           return false; 
          }] 
         } 
        }) 
} 
]); 

角度サービス

angular.module('Events').factory('AttendeesService', ['$http', 
    function ($http) { 
      return { 

       getAttendee: function (eventCode, accountName) { 
        return $http.get('api/events/' + eventCode + '/attendees/' + accountName + '/'); 
       }, 

       isOrganiser: function (eventCode) { 
        return $http.get('api/events/' + eventCode + '/isOrganiser'); 
       }, 
    } 

角度コントローラ

angular.module('Events').controller('AttendeesController', ['$scope', '$rootScope', '$routeParams', '$location', '$filter', 'data', 'canManage', 'canOrganise', 
     'grouped', 'AttendeesService', 'AttendeeAdderService', 'AttendeeDeleterService', 'TrackingService', 'WatcherAdderService', 'WatcherDeleterService', 
     'GroupColorChangerService', 'DefaultSortingChangerService', 'AdminService', 
     function ($scope, $rootScope, $routeParams, $location, $filter, data, canManage, canOrganise, grouped, AttendeesService, AttendeeAdderService, AttendeeDeleterService, 
       TrackingService, WatcherAdderService, WatcherDeleterService, GroupColorChangerService, DefaultSortingChangerService, AdminService) { 

... 

    $scope.isOrganiser = canOrganise; 

... 
    } 
]); 

angular.module( 'イベント'、[ 'ngRoute'、 ' ngSanitize '、 'angularModalService'、 'ngTagsInput' ]);あなたはマスト使用する$ routeProviderについては

+1

それを追加している必要があります...私はいくつかのタイプミスを探していますが、私はいずれかを見つけることができませんでした。解決に達する前にあなたのコンソールを見て、何か間違っていないかどうか確認しましたか?これは 'canOrganise'だけで起こっていますか? –

答えて

0

アプリモジュールにngのルートモジュールが含まれています

angular.module('yourModule', ['ngRoute']) 

とHTMLファイルに接続スクリプトを追加します。

<script src="bower_components/angular/angular.min.js"></script> 
... 
<script src="bower_components/angular-route/angular-route.min.js"></script> 
+0

ahはい、私は別のファイルangular.module( 'Events'、[ 'ngRoute'、 'ngSanitize'、 'angularModalService'、 'ngTagsInput' ])にあります。 –

1

は、ルーティングでは、私の問題を発見しました.jsファイル私は同じコントローラを指している別のURLを別のURLがあります。 1回目に気づかなかったので、正しいルートにプロバイダを追加すると私の問題が解決されました。

はここ

.when('/event/:event/attendees', { 
       templateUrl: '/Content/AngularApp/Attendees/List/Template.html', 
       controller: 'AttendeesController', 
       resolve: { 
        'data': ['$route', 'AttendeesService', function ($route, AttendeesService) { 
         return AttendeesService.getAttendees($route.current.params.event).then(function (response) { 
          return response.data; 
         }); 
        }], 
        'canManage': ['$route', 'AttendeesService', function ($route, AttendeesService) { 
         return AttendeesService.canManage($route.current.params.event).then(function (response) { 
          return response; 
         }); 
        }], 
        'canOrganise': ['$route', 'AttendeesService', function ($route, AttendeesService) { 
         return AttendeesService.isOrganiser($route.current.params.event).then(function (response) { 
          return response; 
         }); 
        }], 
        'grouped': ['$route', 'AttendeesService', function ($route, AttendeesService) { 
         return false; 
        }] 
       } 
      }) 

をこれを追加しましたが、それは私のために罰金だここ

.when('/event/:event/attendees/grouped/:fieldId', { 
       templateUrl: '/Content/AngularApp/Attendees/List/Template.html', 
       controller: 'AttendeesController', 
       resolve: { 
        'data': ['$route', 'AttendeesService', function ($route, AttendeesService) { 
         return AttendeesService.getAttendeesGrouped($route.current.params.event, $route.current.params.fieldId).then(function (response) { 
          return response.data; 
         }); 
        }], 
        'canManage': ['$route', 'AttendeesService', function ($route, AttendeesService) { 
         return AttendeesService.canManage($route.current.params.event).then(function (response) { 
          return response; 
         }); 
        }], 
        'canOrganise': ['$route', 'AttendeesService', function ($route, AttendeesService) { 
         return AttendeesService.isOrganiser($route.current.params.event).then(function (response) { 
          return response; 
         }); 
        }], 
        'grouped': function() { return true; }, 
       } 
      }) 
関連する問題