2015-11-19 50 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,你调试你的功能,知道什么是两次加载你的网页的原因? –