2015-11-19 51 views
0

我正在研究angularjs和新的它,我做了一個應用程序使用this.There幾個頁面的應用程序,現在我的問題是我有兩個按鈕導航到另一個?頁面,但我的問題是,當我那個按鈕(跨度)點擊兩次打開同一個頁面,任何人都可以請幫我如何解決這個我的代碼如下:防止一個按鈕在angularjs中被點擊兩次

的JavaScript

$scope.foo = function() { 
     if ($scope.filterflg !== "1") { 
      $scope.filterflg = "1"; 
      $scope.disabled = true; 


      gallery.pushPage("filter.html", { 
       params: FkCategory 
      }); 

      $timeout(function() { 
       console.log("====timeout occured==="); 
       $scope.filterflg = "0"; 
        $scope.disabled = false; 
      }, 3000); 
     } 
    }; 

html

<ons-button id="test1" class="toolbar-button--quiet navigation-bar__line-height" ng-click="isProcessing=true;foo()" ng-model ="filterflg" 
     style="border: none; padding: 0 5px 0 0; margin-right:7px ;"> 
      <i class="ion-android-options" style="font-size:24px; color: #FFFFFF;"></i> 
     </ons-button> 

我已經浪費了10天這個問題,希望有哥們幫我救我的工作..!:(

+1

這可能會幫助你。 http://stackoverflow.com/questions/29984581/how-do-you-disable-the-submit-button-after-a-single-click-to-prevent-multiple-su –

+0

你可以使用「ng-禁用」。只需使用示波器功能,例如 ng-disabled =「isDisabled」 –

+0

您的函數foo()調用了兩次嗎?你爲什麼使用'timer'? –

回答

1

跨度轉換爲按鈕元素,並禁用按鈕而不只是$timeout後先點擊

$scope.foo = function() { 
     just simply 
     $scope.disabled = false; 
     // Your other code 


}; 

或使用標誌來檢查頁面已經開放與否將解決你的問題

$scope.isFilteropen = false; 

$scope.foo = function() { 
    if ($scope.isFilteropen == false) { 
     $scope.isFilteropen = true; 
     // your other code 
    } 
}; 
+0

它會在跨度上工作嗎? – JIGAR

+0

不,它不會,我已經更新了我的答案 –

+0

我的html中有什麼變化? – JIGAR

3

NG-禁止上跨度不起作用。它只適用於輸入按鈕類型。

你有兩個選擇 -

  1. 跨度轉換爲按鈕元素

  2. 使用像$ scope.isProcessing一個變量來包裝,把foo()函數。

    $ scope.foo =函數(){

    if (!$scope.isProcessing) {  
        //...  
        $timeout(function() { 
         console.log("====timeout occured==="); 
         $scope.filterflg = "0"; 
         $scope.disabled = false; 
         $scope.isProcessing = false;   
        }, 3000); 
    } 
    

    };

HTML

<span ng-click="isProcessing=true;foo()"></span> 
+0

在html中做了哪些更改? – JIGAR

+0

plz檢查更新。 – Rabi

+0

請參閱已更新的問題..哪些仍然不能正常工作.. :( – JIGAR

0

試試這個,

<span class="toolbar-button--quiet navigation-bar__line-height" ng-disabled="disabled" ng-click="disabled=true;foo();disabled=false;" ng-model ="filterflg"> </span> 

並刪除timer從功能Foo()

+0

hello使用了this.still它去了兩次下一頁.. :(.. ..請兄弟..幫我。請參閱我的更新問題 – JIGAR

+0

@firecandy,你調試你的功能,知道什麼是兩次加載你的網頁的原因? –