2014-12-08 5 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

관련 문제