web-dev-qa-db-fra.com

angular module.run ReferenceError: $ location n'est pas défini

Je veux changer de chemin sans rechargement, regardez http://joelsaupe.com/programming/angularjs-change-path-without-reloading/

dans core.js:

 'use strict';
    angular.module('App',['ngRoute'])
        .run(['$route', '$rootScope', '$location', function ($route, $rootScope, $location) {
        var original = $location.path;
        $location.path = function (path, reload) {
            if (reload === false) {
                var lastRoute = $route.current;
                var un = $rootScope.$on('$locationChangeSuccess', function () {
                    $route.current = lastRoute;
                    un();
                });
            }
            return original.apply($location, [path]);
        };
    }]);

Dans le contrôleur:

    angular.module('App')        
        .controller('DetailController', ['$scope', '$location',  function($scope) {
  $scope.changeURL = function(){
            console.log("IN changeURL");
            $location.path('/sample/gfshdfdsf', false);
        };      
    }]);

Si invoke changeURL, l'erreur suivante sera générée: ReferenceError: $location is not defined

Quelqu'un peut m'aider? Merci!

11
UNSTABLE

$ location n’est pas injecté dans la controller, il suffit donc de changer

.controller('DetailController', ['$scope', '$location',  function($scope)

à

.controller('DetailController', ['$scope', '$location',  function($scope, $location)
28
sol4me

Je recevais la même erreur et j'ai supprimé le $ rootScope des définitions. Après cela a fonctionné. Aucune idée pourquoi. 

Ne fonctionne pas

app.factory("OrganizationService",   
    ['$q', '$http', '$log', '$location', '$rootScope', '$timeout', 'LoadSubscriptionsService', 'LoadRolesService',
  function($scope , $http, $log, $location, $cookies, $rootScope, $timeout) {

Travail

app.factory("OrganizationService",   
    ['$q', '$http', '$log', '$location', '$timeout', 'LoadSubscriptionsService', 'LoadRolesService',
  function($scope , $http, $log, $location, $cookies, $timeout) {
1
Andreas Panagiotidis