2017-05-10 3 views
1

Alors je me le:angulaire 1.5 fournisseur inconnu

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

je ne peux pas comprendre pourquoi, je simplement avoir ce point final que je l'ai testé fonctionne bien, et que vous voulez juste résoudre avant que je navigue à un itinéraire, il ne fonctionne pas lorsque vous essayez de résoudre canOrganise, des idées pourquoi?

Merci.

Sauter dans le code.

Le point final.

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

routage angulaire:

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

Service angulaire

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

contrôleur angulaire

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

+1

il semble bien pour moi ... Je cherche une faute de frappe, mais je ne ai trouvé aucun. Avez-vous regardé votre console pour voir si quelque chose ne va pas avant d'atteindre la résolution? cela se produit uniquement avec 'canOrganise'? –

Répondre

0

Pour une utilisation routeProvider de $ vous MAST comprennent module voie ng à votre module d'application:

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

et ajouter un script de connexion dans votre fichier html:

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

ah oui, j'ai dans un autre fichier angular.module ('Events', [ 'ngRoute', 'ngSanitize', 'angularModalService', 'ngTagsInput' ]); –

1

trouvé mon problème, dans le routage Fichier .js J'ai une autre route qui pointe vers le même contrôleur mais une URL différente. n'a pas remarqué la 1ère fois .. donc l'ajout du fournisseur à la bonne route a résolu mon problème.

ajouté ici

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

mais aurait dû ajouter ici

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