搜尋

首頁  >  問答  >  主體

angular.js - angular $interval怎麼在一個按鈕上實現開始定時和結束定時

我程式碼邏輯如下,想要實作:

  1. 點選查詢按鈕,開啟定時,按鈕文案變成停止查詢,

  2. 點擊停止查詢,取消定時

$scope.submitRequest = function () {
    if ($scope.onlyButton == "查询") {
         $scope.onlyButton = "停止查询";
            $interval(function()
                {
                    //具体方法
                }
                ,5000);
            }
    else{
         setTimeout(function(){
            $scope.onlyButton = "查询";
            $interval.cancel(stop);
            },0)
        };
    }
    

但是沒有成功取消定時,求幫忙...

怪我咯怪我咯2744 天前502

全部回覆(2)我來回復

  • 天蓬老师

    天蓬老师2017-05-15 17:13:04

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-15 17:13:04

    LZ的程式碼完全可以在外面做一個 狀態標示, 例如:

    var interval;
    $scope.startStatus = false;
    
    $scope.submitRequest = function(){
    
        if( !$scope.startStatus ){
            interval = $interval(...);
        } else {
            $interval.cancel(interval);  
        }
        
        $scope.startStatus = !$scope.startStatus;
        
    }
    

    然後在VIEW中直接類似使用:

    <button ng-bind=" !startStatus ? '查询' : '停止查询' "></button>
    

    我覺得這樣寫好多~

    回覆
    0
  • 取消回覆