2016-08-06 11 views
2

私は自分のループ内で選択したチェックボックスを取得したい、そのチェックボックスのために私は金額フィールドonclickを取得する必要があります。angularjs選択されたチェックボックスのみを取得

は、ここに私のHTMLスクリプトです:

<div ng-repeat="$item in items"> 
    Amount :<input ng-model="$item.daily_data.payment_amount"> 
    Check : <input type=checkbox ng-model="checkAmount[$item.daily_data.id]" ng-value="$item.id" > 
</div> 

<input type="button" ng-click="checkNow()" /> 

すべてのチェックボックスを示す以下のスクリプトを実行します。私は唯一のものを欲しい。

JSスクリプト:あなたの問題について

$scope.checkNow = function() { 
    ... 
} 

または

$scope.checkNow = checkNow; 

function checkNow() { 
    ... 
} 

:あなたはこのような何かを行う必要があります$scopefunctionsを使用するすべての

$scope.checkAmount = {}; 
$scope.checkNow(){ 
console.log($scope.checkAmount); 
} 
+0

あなたはngRepeat' '内側にありますか? – developer033

+0

はい。内部ngRepeat –

+0

更新された質問は、あなたが変更を見ることができることを願っています。任意の解決策。 –

答えて

3

まず:

あなたcontrollerで簡単checkedあるアイテムを持つことができますので、あなたは、財産checkedのようなもの)にcheckboxesを結合することができます。

はその後、すべての合計量をチェックする計算に、私はあなたがArray.prototype.filter() + Array.prototype.reduce()を使用することをお勧めします。

ここにあなたのcodeに基づいてデモです:

(function() { 
 
    angular 
 
    .module("app", []) 
 
    .controller('MainCtrl', MainCtrl); 
 

 
    MainCtrl.$inject = ['$scope']; 
 

 
    function MainCtrl($scope) { 
 
    $scope.checkNow = checkNow; 
 
    $scope.checkAmount = {}; 
 
    $scope.items = [ 
 
     { 
 
     "id": 1 
 
     }, 
 
     { 
 
     "id": 2 
 
     }, 
 
     { 
 
     "id": 3 
 
     } 
 
    ]; 
 

 
    function checkNow() { 
 
     $scope.total = $scope.items.filter(function(value) { 
 
     return value.checked; 
 
     }).reduce(function(a, b) { 
 
     return a + b.amount; 
 
     }, 0); 
 
    } 
 
    } 
 
})();
<!DOCTYPE html> 
 
<html ng-app="app"> 
 

 
<head> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.min.js"></script> 
 
</head> 
 

 
<body ng-controller="MainCtrl"> 
 
    <div ng-repeat="$item in items"> 
 
    <label> 
 
     Amount: <input type="number" ng-model="$item.amount"> 
 
    </label> 
 
    <label> 
 
     Check: <input type=checkbox ng-model="$item.checked"> 
 
    </label> 
 
    </div> 
 

 
    <button type="button" ng-click="checkNow()">Check now</button> 
 
    <hr> 
 
    <label for="total">Total</label> 
 
    <input type="number" id="total" disabled ng-model="total"> 
 
</body> 
 

 
</html>

+0

私の金額とこのレベルのIDが '$ item.daily_data.payment_amount'の場合。 –

+0

私は理解できませんでした。 – developer033

+0

確かに、私はそれをします。私に分をお願いします。 –

関連する問題