如何绑定侦听器以检查角度中的复选框?

时间:2014-03-12 10:07:13

标签: angularjs

每当选中一个复选框时,我想监听是否按下某个键并运行一些代码。该代码需要访问复选框值或ngModel。我考虑过像

这样的东西
<input ng-repeat="task in $store.taskarr track by $index" ng-change="checked(task)" ng-model="task" type="checkbox" value="{{task}}" />

controller('checkboxController', function($scope){
    $scope.checked = function(task){
    //here goes something like a keydown-listener if task is true
        console.log(task);
    }
}).

我的方法有问题。

Console.log返回true / false,而不是我期望的{{task}}中的值。 我不确定是否应该使用ng-keydown-event或onkeydown。该事件需要是全局的,因为可以同时检查多个复选框。

如果您更喜欢其他方法,例如属性指令或其他方法,我会全神贯注!

1 个答案:

答案 0 :(得分:2)

尝试使用ng-click

 <ul class="unstyled" style="list-style:none;">                                                                                                                                    
 <li ng-repeat="bill in bills">                                                                                                                                                          
   <input type="checkbox" ng-model="bill.status" ng-click="updateStatus(e, bill._id)" />                                                                                               
   <span>{{bill.description}}</span>                                                                                                                                                     
 </li>                                                                                                                                                                                   

'use strict';

angular.module('Bills')
.controller('BillCtrl', function ($scope) {
  $scope.updateStatus = function(event, id){
      alert('Registro modificado: ' + id);      
    };
 $scope.bills = [
   {'_id': '0', 'status' : false , 'description': 'Telefone'},
   {'_id': '1', 'status' : false , 'description': 'Embasa'},
   {'_id': '2', 'status' : false , 'description': 'Coelba'},
   {'_id': '3', 'status' : false , 'description': 'Internet'},
   {'_id': '4', 'status' : false , 'description': 'Carro'},
   {'_id': '5', 'status' : false , 'description': 'Seguro'}
  ];
});