如何使用Angular.js从表中获取选定的值

时间:2016-03-10 02:40:31

标签: javascript angularjs

我需要一个帮助。我需要使用Angular.js选中复选框选择一些值。我正在解释下面的代码。

    <tr dir-paginate="pro in listOfReview | itemsPerPage:5">
    <td><input type="checkbox" ng-model="selected[pro.review_id]" ng-false-value="undefined"></td>
    <td>{{$index+1}}</td>
    <td>{{pro.Product_name}}</td>
    <td>{{pro.title}}</td>
    <td>{{pro.description}}</td>
    <td>{{pro.rating}}</td>
     <td ng-if="pro.status==0">Not Approved</td>
    <td ng-if="pro.status==1">Approved</td>
    <td ng-if="pro.status==1">
    <a ui-sref="review">
    <input type='button' class='btn btn-xs btn-red' value='Reject' ng-click="RejectStatus(pro.review_id,pro.status);" >  
    </a>
    </td>
    <td ng-if="pro.status==0">
    <a ui-sref="review">
    <input type='button' class='btn btn-xs btn-green' value='Approve' ng-click="ApproveStatus(pro.review_id,pro.status);" >  
    </a>
     </td>
    </tr>   
 <input type='button' class='btn btn-xs btn-green' value='Approve' ng-click="ApproveStatus();">  

控制器侧代码如下所示。

$scope.selected = {};
 $scope.ApproveStatus=function(){
         console.log('approve',$scope.selected);
}

现在我正在获取所选的值approve Object {4: true}。我需要将pro.review_id值分配给类似(review:id:4)的键,以便我可以轻松地使用循环获取这些值。这也是我的要求,当至少有一个复选框选择底部的批准按钮时,将显示给用户。请帮助我。

1 个答案:

答案 0 :(得分:1)

plunker link Click here

您可以使用复选框绑定一个额外的属性,如下所示。

function precise_round(num, decimals) {
var t=Math.pow(10, decimals);   
 return (Math.round((num * t) + (decimals>0?1:0)*(Math.sign(num) * (10 / Math.pow(100, decimals)))) / t).toFixed(decimals);
}

   var elem = $(this);
   elem.data('oldVal', elem.val());
   elem.bind("propertychange change click keyup input paste", function(event){
      if (elem.data('oldVal') != elem.val()) {
       elem.data('oldVal', elem.val());
       if(elem.attr("id")=="seller-gets") {
        var cur = elem.val();
        var value = cur*1.08;
        $("#buyer-pays").val(precise_round(value), 2);
       } else {
        var cur = elem.val();
        var value = cur*0.92;
        $("#seller-gets").val(precise_round(value), 2);
       }
     }
   });
 });