2017-02-07 3 views
0

У меня такой вид программы.Angularjs - Как отключить кнопку отправки, если какое-либо значение превышает значение элемента ng-repeat.

var app = angular.module("myApp", []); 
 
app.controller("myCtrl", function($scope) { 
 
    $scope.records = [ 
 
    { 
 
     "Amt" : "500", 
 
     
 
    }, 
 
    { 
 
     "Amt" : "800", 
 
     
 
    }, 
 
    { 
 
     "Amt" : "1580", 
 
    }, 
 
    { 
 
     "Amt" : "1122", 
 
    } 
 
    ] 
 
    
 
    $scope.value=function(d, x) 
 
    { 
 
    x.balance = x.Amt - d; 
 
    if(d > x.Amt){ 
 
    $scope.isExceeded = true; 
 
    } else { 
 
    
 
    $scope.isExceeded = false; 
 
    } 
 
    } 
 
});
<!DOCTYPE html> 
 
<html> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
<body ng-app="myApp"> 
 

 
<table ng-controller="myCtrl" border="1"> 
 
    <tr> 
 
    <td>Amt</td> 
 
    <td>Balance</td> 
 
    <td>Entered Amt</td> 
 
    <td ng-if="error"> Error</td> 
 
</tr> 
 
<tr ng-repeat="x in records"> 
 
    <td>{{x.Amt}}</td> 
 
    <td>{{x.balance}}</td> 
 
    <td><input type="text" ng-model="d" ng-change="value(d, x)"></td> 
 
    <td ng-if="d > x.Amt" ng-model="error">Please enter less than {{x.Amt}}</td> 
 
</tr> 
 
<tr> 
 
    <td colspan="4"><input type="button" value="Submit" ng-disabled="isExceeded"></td> 
 
</tr> 
 
</table> 
 

 
</body> 
 
</html>

Я хочу, кнопка отправки должна стать отключить, если какой-либо Поступил Amt значение превышает АМТ значение.

Я не получаю представление о том, как я могу достичь этого типа condition.I новый для angularjs.

+0

Используйте нг-отключить директиву и передать условию –

+0

его рабочих now.Its то, что я хотел. – Mohammed

ответ

2

Вы можете иметь переменную isExceeded и использовать ее в угловой разметке с помощью директивы ng-disable, чтобы отключить кнопку.

<body ng-app="myApp"> 
    <table ng-controller="myCtrl" border="1"> 
    <tr> 
     <td>Amt</td> 
     <td>Balance</td> 
     <td>Entered Amt</td> 
     <td ng-if="error"> Error</td> 
    </tr> 
    <tr ng-repeat="x in records"> 
     <td>{{x.Amt}}</td> 
     <td>{{x.balance}}</td> 
     <td><input type="text" ng-model="d" ng-change="value(d, x)"></td> 
     <td ng-if="d > x.Amt" ng-model="error">Please enter less than {{x.Amt}}</td> 
    </tr> 
    <tr> 
     <td colspan="4" ng-disable="isExceeded"><input type="button" value="Submit"></td> 
    </tr> 
    </table>  
</body> 

и проверить его в угловом контроллер как

$scope.value=function(d, x) 
{ 
    if(d > x.Amt){ 
    $scope.isExceeded = true; 
    } else { 
    x.balance = x.Amt - d; 
    $scope.isExceeded = false; 
    } 
} 
+0

Работал как чемпион. – Mohammed

+0

Но разве нет какого-либо другого способа сделать это в самом html? – Mohammed

+0

Да, есть метод, вам нужен текущий элемент за пределами 'ng-repeat', для которого вы изменяете значение. Вы можете сохранить индекс, а затем использовать в html текущий элемент. Но это проще сделать так: –

Смежные вопросы