2

複数のビューを持つイオンパッケージを構築しています。ルート プロバイダーを使用して、異なるビュー間を移動します。

app.js

.config(function($routeProvider,$locationProvider){

    $routeProvider
    .when('/search',
        {
            controller : 'MyController',
            templateUrl : 'partials/search.html'
        })

    .when('/not-found/:className',
        {
            controller : 'MyController',
            templateUrl : 'partials/not-found.html'
        })

私の index.html

  <body ng-app="MyApp">  
        <ng-view></ng-view>

      </body>
    </html>

問題は、携帯電話の戻るボタンが機能しないことです。つまり、履歴が記憶されていません。たとえば、search.html から not-found.html に移動した場合、携帯電話の [戻る] ボタンを押すと、アプリが閉じてしまう代わりに、search.html に戻ることを期待しています。私はイオンフォーラムを見て、戻るボタンを機能させる方法を提案しましたion-nav-view. に置き換えるng-viewion-nav-view、検索/見つからないページがレンダリングされませion-viewん。検索/見つからないhtmlページに を追加しようとしました。
1) 戻るボタンを機能させる方法を教えてください。

4

2 に答える 2

2

これを実現するには、実際にハードウェアの戻るボタンが押されたイベントをキャプチャし、それに応じてナビゲーションを実行する必要があります。または、ion-nav-back-button ..

  1. ハードウェアの戻るボタン イベントをキャプチャします。

    $ionicPlatform.registerBackButtonAction(function () {
      if (condition) {
        navigator.app.exitApp();
      } else {
        // handle back action!
      }
    }, 100);
    

詳細はこちら


  1. ion-nav-back-button の使用

    <ion-nav-bar>
      <ion-nav-back-button class="button-clear">
        <i class="ion-arrow-left-c"></i> Back
      </ion-nav-back-button>
    </ion-nav-bar>  
    

詳細については、こちらを参照してください。

于 2014-12-25T05:15:43.750 に答える
0

registerBackButtonActionは、定義内の属性ion-nav-back-buttonの一部として既に処理されています:を実行すると、ハードウェアの戻るボタンが処理されます。状態構成を使用するための単純な変更は、次のように正常に機能するはずです。ng-clickion-nav-back-buttonbuttonEle.setAttribute('ng-click', '$ionicGoBack()')$ionicGoBack$ionicHistory.goBack()

angular
  .module('app', ['ionic'])
  .config(function ($stateProvider, $urlRouterProvider) {
    $stateProvider
     .state('search', {
        url: '/search',
        controller : 'MyController',
        templateUrl : 'partials/search.html'
    })
   .state('not-found', {
        url: `/not-found/:className',
        controller : 'MyController',
        templateUrl : 'partials/not-found.html'
    });

    $urlRouterProvider.otherwise('/search');        
  });

HTML:

<body ng-app="app">  
    <ion-nav-bar>
      <ion-nav-back-button></ion-nav-back-button>
    </ion-nav-bar>

    <ion-nav-view></ion-nav-view>
  </body>
</html>
于 2016-05-07T07:42:23.270 に答える