2014-12-08 2 views
2

Я пытаюсь перезагрузить маршрут с моего контроллера, используя $ route.reload(), но ничего не происходит. Вот мой контроллер:

app.controller("FooController", function($scope, data, $route) { 
    $scope.model = data.model; 
    $scope.meta = data.meta; 
    $scope.reload = function() { 
     return $route.reload(); 
    }; 
    }); 

Я использую angular-route-segment для моих маршрутов и связанный с ним маршрут выглядит следующим образом:

app.config(function($routeSegmentProvider) { 
    $routeSegmentProvider.segment("foo", { 
     templateUrl: templatesRoot + "/tickers/oldest.html", 
     controller: "FooController", 
     resolve: { 
     data: function($http) { 
      return $http.get("/api/foos").then(function(response) { 
      return { 
       model: response.data.foos, 
       meta: response.data.meta 
      }; 
      }); 
     } 
     }, 
     untilResolved: { 
     templateUrl: templatesRoot + "/loading.html" 
     } 
    }); 
    }); 

ответ

1

Вводят $routeSegment вместо $route.

Свойство chain - это массив сегментов, разделенных каждым уровнем отдельно, и каждый элемент будет иметь метод reload.

Например:

$scope.reload = function() { 
    $routeSegment.chain[0].reload(); 
}; 

Другие свойства и методы, доступные на $routeSegment и элементы в массиве chain можно найти here.

+0

Спасибо, я закончил это, но перезагрузил последний в цепочном массиве следующим образом: $ routeSegment.chain [$ routeSegment.chain.length - 1] .reload() – Charlie

Смежные вопросы