Ionic Framework를 사용한 로그인/로그아웃 이력 클리어 및 새로고침 페이지
이오닉의 및 시 이 페이지는 새로고침해야 합니다.$state.go('mainPage')는 새로고침 없이 사용자를 뷰로 되돌립니다.이치노
역사를 지우고 국가를 다시 불러올 방법이 있나요?
프레임워크에 오신 것을 환영합니다!실제로 Ionic에서의 라우팅은 ui-router에 의해 구동됩니다.이 문제를 해결하기 위한 몇 가지 다른 방법을 찾으려면 이전 SO 질문을 확인해야 합니다.
상태를 새로고침하는 경우 다음을 사용할 수 있습니다.
$state.go($state.current, {}, {reload: true});
실제로 페이지를 새로고침하는 경우(와 같이 모든 것을 다시 부트스트랩 하는 경우) 다음과 같이 사용할 수 있습니다.
$window.location.reload(true)
행운을 빕니다.
Jim Dev의 에 Jim The Dev가 포함되어 있을 하다는 것을 .cache:false캐시되어 , 「」를 실행할 수 .$ionicHistory.clearCache() 다음에 또 한 번.$state.go('app.fooDestinationView')캐시되지만 새로 고쳐야 하는 상태로 이동하는 경우.
Ionic에 대한 간단한 변경이 필요하며 풀 요청을 작성했습니다.https://stackoverflow.com/a/30224972/756177
정답:
$window.location.reload(true);
나는 그것을 완성하는 데 도움이 되는 해결책을 찾았다. ★★cache-view="false"ion-view이치노
<ion-view cache-view="false" view-title="My Title!">
....
</ion-view>
페이지를 새로고침하는 것은 최선의 방법이 아닙니다.
뷰 자체를 새로고침하지 않고 새로고침 데이터에 대한 상태 변경 이벤트를 처리할 수 있습니다.
ionicView라이프 사이클은 이쪽에서 보실 수 있습니다.
http://blog.ionic.io/navigating-the-changes/
데이터 새로고침 전에 이벤트를 처리합니다.
$scope.$on('$ionicView.beforeEnter', function(){
// Any thing you can think of
});
내 경우 보기만 지우고 컨트롤러를 다시 시작해야 합니다.나는 이 단편으로 내 의도를 알 수 있었다.
$ionicHistory.clearCache([$state.current.name]).then(function() {
$state.reload();
});
캐시는 아직 작동하고 있으며 보기만 지워진 것 같습니다.
ionic --version..7.5라고 .
의 어느 도, 호스트명과는 호스트명에 는 동작하지 .localhost!
전달되는 옵션 목록에 추가해야 했습니다.$state.go청취자 Angular Change 전$window.location.reload콜이 호출됩니다.최종 코드는 다음과 같습니다.
$state.go('home', {}, {reload: true, notify: false});
>>>편집 - 브라우저에 따라서는 $timeout이 필요할 수 있습니다.>>
$timeout(function () { $window.location.reload(true); }, 100);
<< 편집 종료<<
자세한 내용은 UI 라우터 참조를 참조하십시오.
angularjs를 사용하여 페이지 새로 고침을 하려고 했는데 혼란스러운 웹사이트를 보았는데 코드에는 아무런 코드도 작용하지 않아 다음 방법으로 페이지를 새로고침하기 위한 솔루션을 얻었습니다.
$state.go('path',null,{reload:true});
이 기능을 사용할 수 있습니다.
스크롤 바를 작동시키기 위해 상태를 다시 로드해야 했습니다.다른 상태, 즉 '등록'을 통과하면 작동하지 않습니다.등록 후 앱을 강제로 닫았다가 다시 열었을 경우, 즉 '홈' 상태로 바로 이동하면 스크롤바가 작동합니다.위의 솔루션 중 어느 것도 작동하지 않았습니다.
등록 후 다음을 대체했습니다.
$state.go("home");
와 함께
window.location = "index.html";
앱이 새로고침되고 스크롤바가 작동합니다.
컨트롤러는 한 번만 호출되므로 이 논리 모델을 유지해야 합니다.이러한 작업은 주로 다음과 같습니다.
메서드를 만듭니다.$scope.reload(params)
이 메서드의 시작 부분에서$ionicLoading.show({template:..})커스텀 스피너를 보여주려고
새로고침 프로세스가 완료되면 전화할 수 있습니다.$ionicLoading.hide()콜백으로서
마지막으로 REFRESH 버튼 안에ng-click = "reload(params)"
이 솔루션의 유일한 단점은 이온 내비게이션 이력 시스템이 손실된다는 것입니다.
이게 도움이 됐으면 좋겠네요!
뷰 변경 후 새로고침하려면
$state.reload('state',{reload:true});
해당 뷰를 새로운 "루트"로 만들려면 다음 뷰가 루트가 될 것이라고 이온성에게 말할 수 있습니다.
$ionicHistory.nextViewOptions({ historyRoot: true });
$state.go('app.xxx');
return;
뷰를 변경할 때마다 컨트롤러를 새로고침하는 경우
app.config(function ($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
$ionicConfigProvider.views.maxCache(0);
.state(url: '/url', 컨트롤러: Ctl, templateUrl: 'template'.html', cache: false) 캐시: false ==> 문제 해결!
@ezain reload controller에서 지적된 바와 같이 필요한 경우에만 컨트롤러가 새로고침됩니다.컨트롤러를 새로고침하는 것이 아니라 상태를 변경할 때 데이터를 갱신하는 또 다른 깔끔한 방법은 브로드캐스트이벤트를 사용하여 뷰의 데이터를 갱신해야 하는 컨트롤러에서 이러한 이벤트를 듣는 것입니다.
예: 로그인/로그아웃 기능에서는 다음과 같은 작업을 수행할 수 있습니다.
$scope.login = function(){
//After login logic then send a broadcast
$rootScope.$broadcast("user-logged-in");
$state.go("mainPage");
};
$scope.logout = function(){
//After logout logic then send a broadcast
$rootScope.$broadcast("user-logged-out");
$state.go("mainPage");
};
이제 mainPage Controller에서 $on 함수를 사용하여 다음과 같이 mainPage Controller 내에서 브로드캐스트를 청취함으로써 뷰의 변경을 트리거합니다.
$scope.$on("user-logged-in", function(){
//update mainPage view data here eg. $scope.username = 'John';
});
$scope.$on("user-logged-out", function(){
//update mainPage view data here eg. $scope.username = '';
});
여러 가지 방법을 시도해 봤지만 이 방법이 완전히 정확하다는 것을 알게 되었습니다.
$window.location.reload();
버전 1.5.5, 1.2.4, angular-ui-router 1.0.0과 같은 다른 사용자가 이 버전을 사용하는 데 도움이 되기를 바랍니다.
언급URL : https://stackoverflow.com/questions/25192172/clear-history-and-reload-page-on-login-logout-using-ionic-framework
'programing' 카테고리의 다른 글
| 빈 개체에 대해 json 열을 쿼리하는 방법 (0) | 2023.03.16 |
|---|---|
| SQL 쿼리에서 콜론 기호 ":"의 역할은 무엇입니까? (0) | 2023.03.16 |
| Angular 2 확인란 양방향 데이터 바인딩 (0) | 2023.03.16 |
| JSX에서 공백을 추가할 때의 모범 사례 (0) | 2023.03.16 |
| Word Press:$wp_query를 사용하여 카테고리별로 투고를 필터링하려면 어떻게 해야 합니까? (0) | 2023.03.16 |