1. ホーム
  2. android

[解決済み] AngularJSの戻るボタン

2022-02-11 13:20:02

質問

PhonegapとAngularJSを使って、Androidアプリを作る作業をしています。ブラウザの「戻る」ボタンを押すだけで、「キャンセル」ボタンと「戻る」ボタンの両方として使用できるボタンを作成しようとしています。

以下は、キャンセルボタンのHTMLのサンプルです。

<a href="#" ng-click="goBack()" class="button--cancel weight--bold vertical-align--middle text-center">cancel</a>

そして、これがそのページのコントローラで、goBack()ボタンがあります。

function NewOccasionCtrl($scope, $window) {
    $scope.$window = $window;
    $scope.goBack = function() {
      $window.history.back();
    };
}

これはエラーにはなりませんが、うまくいきません...エミュレータは同じページを表示したままです。この場合 $scope.$window = $window はエラーを投げます。私は、ディレクティブを作成/使用することなく、機能的な「戻る」ボタンを実現したいと考えていました。私が理解する限り、ディレクティブはテンプレートや私が必要としないものを実装しているからです。

このような方法はありますか?ありがとうございます。

どのように解決するのですか?

私は、バック機能を再利用可能にするために、ディレクティブを使用することにしました。以下は、私の最終的なコードです。

HTMLです。

<a href back-button>back</a>

ジャバスクリプトです。

app.directive('backButton', function(){
    return {
      restrict: 'A',

      link: function(scope, element, attrs) {
        element.bind('click', goBack);

        function goBack() {
          history.back();
          scope.$apply();
        }
      }
    }
});