2017-05-10 4 views
1

So bekomme ich das:Angular 1.5 Unknown Anbieter

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

ich kann nicht erklären, warum ich einfach haben diesen Endpunkt, die ich getestet habe es funktioniert ok, und will nur dieses Problem zu beheben, bevor ich zu navigieren eine Route, es funktioniert nicht beim Versuch, CanOrganise zu lösen, irgendwelche Ideen warum?

Vielen Dank.

Sprung in den Code.

Der Endpunkt.

[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-Routing:

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 Service

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

Winkelregler

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 ('Events', [ 'ngRoute', ' ngSanitize ', 'angularModalService', 'ngTagsInput' ]);

+1

es scheint gut aufgenommen ... Ich bin für einige Tippfehler aus, aber ich habe keine gefunden. Hast du deine Konsole angesehen, um zu sehen, ob etwas falsch ist, bevor du die Entschlossenheit erreicht hast? das passiert nur mit 'canOrganise'? –

Antwort

0

Für den Einsatz $ routeProvider Sie Mast umfassen ng-Route-Modul in Ihrer App-Modul:

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

und fügen Sie connect Skript in Ihre HTML-Datei:

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

ah ja, ich habe in einer anderen Datei angular.module ('Ereignisse', [ 'ngRoute', 'ngSanitize', 'angularModalService', 'ngTagsInput' ]); –

1

mein Problem gefunden, in der Routing .js-Datei Ich habe eine andere Route, die auf denselben Controller, aber andere URL verweist. Ich habe das erste Mal nicht bemerkt. Das Hinzufügen des Providers zur richtigen Route hat mein Problem gelöst.

hinzugefügt hier

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

aber es sollte für mich hier

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