5981

[code]

    <ons-button modifier="quiet" ng-click="Navigator.pushPage('hoge.html', { animation : 'lift' } )">hoge</ons-button>
    
[/code]

というボタンを設置して、  
そのボタンを複数回押すと、押した数だけ画面が出てきてしまいます。

それを防ぐような処理はどうしたら良いでしょうか？

教えていただけると幸いです。よろしくお願いいたします。


CC BY-SA 3.0
2015-02-05T06:09:08.813
5976
2015-02-05T07:48:23.440
8088
question
angularjs onsen-ui
OnsenUIで画面遷移のボタンを複数押すと、押した分画面が出てきてしまう件


ボタン押下後は画面遷移処理を無効にしておき、遷移終了したタイミングで再び遷移処理実行可能にすればよいです。[`navigation.pushPage()`](http://onsen.io/guide/components.html#ons-
navigator) の `options` では、`onTransitionEnd` にコールバック関数が指定できます。

以下のようになります。

_root page_ :

[code]

    <!DOCTYPE HTML>
    <html>
    <head>
        ...
        <script>
            ...
            app.controller('MainCtrl', function($scope) {
                $scope.isPushing = false;
                $scope.pushTo = function( pageName) {
                  if ($scope.isPushing) return;
                  $scope.isPushing = true;
                  $scope.myNavigator.pushPage(pageName, {
                    animation : 'lift',
                    onTransitionEnd: function() { 
                      $scope.isPushing = false;
                    }
                  });
                };
            });
        </script>
    </head>
    <body ng-controller="MainCtrl">
    ...
    
[/code]

_ons page_ :

[code]

        <ons-button modifier="quiet" ng-click="pushTo('page2.html')">
            hoge
        </ons-button>
    
[/code]


CC BY-SA 3.0
2015-02-05T07:48:23.440
5981
2015-02-05T07:48:23.440
4978
5976
answer