programing

Ionic 프레임워크 $state.go('app')home' )는 이동처 페이지의 뒤로 버튼을 추가하는 것입니까(삭제 방법)?

goodsources 2023. 2. 14. 20:14
반응형

Ionic 프레임워크 $state.go('app')home' )는 이동처 페이지의 뒤로 버튼을 추가하는 것입니까(삭제 방법)?

사이드바 메뉴가 있는 앱이 있습니다.현재 두 번째 페이지에 있으며 컨트롤러 함수를 호출하고 있습니다.이 함수는 다음을 사용하여 첫 번째 페이지로 리다이렉트합니다.

$state.go('app.home');

문제는 이 페이지에서 사이드바 메뉴 아이콘 옆에 뒤로 버튼이 표시된다는 것입니다.아래 이미지를 참조하십시오.

여기에 이미지 설명 입력

사이드바 메뉴가 할당된 페이지에 되돌아가기 버튼을 추가하는 것을 거부할 수 있는 방법을 가르쳐 주시겠습니까?

도와주셔서 감사합니다.

app.discs는 라우터의 설정을 다음과 같이 합니다.

angular.module('Test', ['ionic', 'config', 'Test', 'LocalStorageModule'])

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    // for form inputs)
    if(window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
    }
    if(window.StatusBar) {
      // org.apache.cordova.statusbar required
      StatusBar.styleDefault();
    }
  });
})

.config(function($stateProvider, $urlRouterProvider, localStorageServiceProvider) {
   localStorageServiceProvider
     .setPrefix('max_relax');
   $stateProvider

    .state('app', {
      url: '/app',
      abstract: true,
      templateUrl: 'templates/menu.html',
      controller: 'AppCtrl'
    })

    .state('app.home', {
      url: '/home',
      views: {
        'menuContent' :{
          templateUrl: 'templates/home.html',
          controller: 'HomeCtrl'
        }
      }
    })

    .state('app.saved', {
      url: '/saved',
      views: {
        'menuContent' :{
          templateUrl: 'templates/saved.html',
          controller: 'SavedCtrl'
        }
      }
    })
    .state('app.settings', {
      url: '/settings',
      views: {
        'menuContent' :{
          templateUrl: 'templates/settings.html',
          controller: 'SettingsCtrl'
        }
      }
    });
  // if none of the above states are matched, use this as the fallback
  $urlRouterProvider.otherwise('/app/home');
});

편집:

메뉴 템플릿 추가:

<ion-side-menus>

  <ion-pane ion-side-menu-content>
    <ion-nav-bar class="bar-stable">
      <ion-nav-back-button class="button-clear"><i class="icon ion-ios7-arrow-back"></i> Back</ion-nav-back-button>
    </ion-nav-bar>
    <ion-nav-view name="menuContent" animation="slide-left-right"></ion-nav-view>
  </ion-pane>

  <ion-side-menu side="left">
    <header class="bar bar-header bar-stable">
      <h1 class="title">Menu</h1>
    </header>
    <ion-content class="has-header">
      <ion-list>
        <ion-item nav-clear menu-close href="#/app/home">
          Home
        </ion-item>
        <ion-item nav-clear menu-close href="#/app/saved">
          Saved
        </ion-item>
        <ion-item nav-clear menu-close href="#/app/settings">
          Settings
        </ion-item>

      </ion-list>
    </ion-content>
  </ion-side-menu>
</ion-side-menus>

호출하기 전에 컨트롤러에서 사용$state.go('app.home').

.controller('HomeCtrl', function($scope,...,$ionicHistory) {
  ...
  $ionicHistory.nextViewOptions({
    disableBack: true
  });

  $state.go('app.home');
});

nextViewOptions는 $state.go('Yourstate') 앞에 설정할 수 있습니다.컨트롤러에서 다음과 같이 쓸 수 있습니다.

$ionicHistory.nextViewOptions({
  disableBack: true
});
$state.go('app.home');

따라서 이 이행에서는 이력 스택이 클리어되고 다음 뷰가 이력 스택의 루트로 설정됩니다.

반환할 컨트롤러HomeCtrl:

.controller('SavedCtrl', function($scope,...,$ionicHistory) {
  ...
    $ionicHistory.nextViewOptions({
       disableBack: true
    });

  $state.go('app.home');
 })
.controller('HomeCtrl', function($scope,...,$ionicHistory) {
     $ionicHistory.clearHistory();
 })
$ionicNavBarDelegate.showBackButton(false);

당신이 가지고 있는 한<ion-nav-back-button></ion-nav-back-button>에 포함된.<ion-nav-bar>기본적으로 모든 보기에서 뒤로 버튼을 볼 수 있습니다.app.

삭제 중<ion-nav-back-button>를 사용하여 모든 보기에서 뒤로 버튼을 제거합니다.app. 설정에 따라 표시하는 템플릿에 따라 선택적으로 비활성화할 수 있습니다.hide-back-button="true"에서<ion-view>사용할 수 있습니다.

그래서, 당신의 경우,<ion-nav-back-button class="button-clear"><i class="icon ion-ios7-arrow-back"></i> Back</ion-nav-back-button>부터menu.html를 사용하여 모든 보기에서 뒤로 버튼을 숨깁니다.app.

Ionic의 사이드 메뉴를 사용할 때도 문제가 있었습니다.

사이드 메뉴에서 옵션을 선택할 때 결과 페이지/뷰에 네비게이션 바에 뒤로 버튼이 표시되는 경우가 있습니다(메뉴 옵션을 선택하면 이력이 리셋되기 때문에).

이 문제는 메뉴 옵션에서 "ng-click"을 사용하는 것과 관련이 있습니다.다음은 예를 제시하겠습니다.

<ion-item menu-close ng-click="showStartPage()" ...>

컨트롤러 메서드로 $state.go(...)를 호출합니다.

해결책은 다음과 같이 코드화하는 것이었습니다.

<ion-item menu-close href="#/startPage" ...>

이렇게 하면 Ionic은 (분명히) 내비게이션 이력을 적절히 추적할 수 있습니다.

(실행하지 않았지만 아마 'href'가 아닌 'ui-sref'도 사용할 수 있을 것 같습니다.)

언급URL : https://stackoverflow.com/questions/27930702/ionic-framework-state-goapp-home-is-adding-back-button-on-page-where-i-wan

반응형