2016-11-30 9 views
0

ngDialog 팝업 윈도우를 통해 $ scope 배열에 데이터를 수집 중입니다. 사용자가 확인 버튼을 여러 번 클릭하면 데이터가 여러 번 추가됩니다. 나는 버튼을 비활성화하기 위해 $ scope 변수로 ngDisable을 시도했지만, 불행히도 ngDialog 팝업 창은 기능 확인이 완료 될 때까지 범위 변경을 선택하지 않습니다. https://jsfiddle.net/lasith011/11cdp05c/ngDialog 복수 클릭 확인

var myApp = angular.module('myApp',['ngDialog']); 

myApp.controller('MyCtrl', function ($scope, ngDialog) { 
     $scope.names = []; 
    $scope.openDialog = function(){ 
     ngDialog.open({ 
     scope: $scope, 
     template: 'templateForm', 
     closeByDocument: false, 
     controller: 'PopUpController' 
     }); 
    } 
}); 
myApp.controller('PopUpController', function($scope, ngDialog, $timeout){ 
    $scope.cancel = function(){ 
    ngDialog.close(); 
    }; 
    $scope.submit = function(){ 
    $scope.disable = true; 
    //Some calculation 
    $timeout(function(){ 
     $scope.names.push($scope.varName); 
     ngDialog.close(); 
    }, 1000); 
    $scope.disable = false; 
    }; 
}); 
+0

주 지연에 대한 @LokeshKumarGaurav 죄송 –

+0

@lasith 코드 https://jsfiddle.net/lasith011/11cdp05c/ – lasith

답변

0

왜 1000 밀리 초와 $ 제한 시간을 추가? 제거하면 충분히 괜찮아 질 것입니다.

myApp.controller('PopUpController', function($scope, ngDialog){ 
    $scope.cancel = function(){ 
     $scope.closeThisDialog(); 
    }; 
    $scope.submit = function(){ 
     $scope.disable = true; 
     //Some calculation 
     $scope.names.push($scope.varName); 
     $scope.closeThisDialog('cancel'); 
     $scope.disable = false; 
    }; 
}); 

https://jsfiddle.net/ramseyfeng/3spbjpt8/