[angularjs] AngularJs : 페이지 새로 고침

<a ng-href="#" class="navbar-brand" title="home" data-translate>PORTAL_NAME</a>

페이지를 새로 고침하고 싶습니다. 어떻게해야합니까?



답변

서비스 reload방법을 사용할 수 있습니다 $route. $route컨트롤러에 주입 한 다음에 메소드를 작성 reloadRoute하십시오 $scope.

$scope.reloadRoute = function() {
   $route.reload();
}

그런 다음 다음과 같이 링크에서 사용할 수 있습니다.

<a ng-click="reloadRoute()" class="navbar-brand" title="home"  data-translate>PORTAL_NAME</a>

이 방법을 사용하면 현재 경로가 다시로드됩니다. 그러나 전체 새로 고침을 수행하려는 경우 다음을 주입 $window하여 사용할 수 있습니다.

$scope.reloadRoute = function() {
   $window.location.reload();
}

나중에 편집 (ui-router) :

답변에서 JamesEddyEdwards와 Dunc이 언급했듯이 angular-ui / ui-router 를 사용하는 경우 다음 방법을 사용하여 현재 상태 / 경로를 다시로드 할 수 있습니다. $state대신에 주사 $route하면 다음이 있습니다.

$scope.reloadRoute = function() {
    $state.reload();
};


답변

window더 쉬운 테스트와 조롱을$window 위해 서비스를 통해 객체를 사용할 수 있습니다.

$scope.reloadPage = function(){$window.location.reload();}

그리고 :

<a ng-click="reloadPage"  class="navbar-brand" title="home"  data-translate>PORTAL_NAME</a>

참고로, $ route.reload () 실제로 실제로 페이지를 다시로드한다고 생각하지는 않지만 route 만 생각 합니다 .


답변

 location.reload(); 

트릭을 수행합니다.

<a ng-click="reload()">

$scope.reload = function()
{
   location.reload();
}

경로가 필요하거나 평범한 오래된 JS가 필요하지 않습니다.


답변

Alexandrin의 답변과 비슷하지만 $ route 대신 $ state를 사용합니다.

(JimTheDev의 SO 답변 에서 여기에 있습니다 .)

$scope.reloadState = function() {
   $state.go($state.current, {}, {reload: true});
}

<a ng-click="reloadState()" ... 


답변

내가 추천하는 Angulars 고급 ui-router 를 사용하는 경우 이제 간단하게 사용할 수 있습니다.

$state.reload();

본질적으로 Dunc의 대답과 동일합니다.


답변

무한 루프를 피하는 내 해결책은 리디렉션을 만든 다른 상태를 만드는 것입니다.

$stateProvider.state('app.admin.main', {
    url: '/admin/main',
    authenticate: 'admin',
    controller: ($state, $window) => {
      $state.go('app.admin.overview').then(() => {
        $window.location.reload();
      });
    }
  });


답변

앵귤러 2+

Angular 2+를 검색하는 동안 이것을 찾았으므로 다음과 같은 방법입니다.

$window.location.reload();