首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AngularJS:检测ngRepeat中哪个复选框处于选中/取消选中状态并调用函数

AngularJS:检测ngRepeat中哪个复选框处于选中/取消选中状态并调用函数
EN

Stack Overflow用户
提问于 2014-03-11 18:12:08
回答 2查看 9.7K关注 0票数 0

我想我正在尝试在Angular中做一些相对简单的事情,但由于某些原因,我无法完全理解ngClick、ngModel、ngChange或ngChecked来解决它。

我有一大堆重复的复选框,当一个复选框被选中时,一个函数会提醒一件事,而当它没有被选中时,该函数会提醒另一件事。下面是一些伪代码:

HTML:

代码语言:javascript
运行
复制
<div id="topic" ng-repeat="50 times">
    <input type='checkbox' ng-model='???' ng-click='myFunc($index)' />
</div>

脚本:

代码语言:javascript
运行
复制
function myFunc(index) {
    if (checkbox == checked) {
      alert('checkbox ' + index + 'checked!');
    }
    else {
      alert('checkbox' + index + 'unchecked!');
    }
}

所以问题是我不知道如何区分复选框中的哪个复选框是选中的,什么时候是未选中的。有人有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-11 18:27:58

你需要一个控制器的帮助..

我会这样做:

初始化$scope上的空值数组和要在更改时使用的函数。

代码语言:javascript
运行
复制
$scope.checkboxes = [];

$scope.alert = function(index, event){

  alert("checkbox " + index + " is " + $scope.checkbox[index]);

}

ng-model绑定到checkboxes[$index],然后就可以使用ng-change了,因为您已经指定了一个模型。

代码语言:javascript
运行
复制
<input type="checkbox" 
       ng-model="checkbox[$index]" 
       ng-change="alert($index)"> 

请参阅此plunker

票数 5
EN

Stack Overflow用户

发布于 2014-08-28 21:42:39

Ng-model在ng-click之后被调用。所以你可以在ng-click上清除模型,然后就完成了。单击ng后,nd-model将显示该值

Javascript代码:

代码语言:javascript
运行
复制
 for (var i = 0; i < $scope.sunday_workshop.length; i++) {              
                $scope.sunday_workshop[i].flag = false;                 
            }

HTML代码:

代码语言:javascript
运行
复制
 <div ng-repeat="workshop in sunday_workshop">
                        <input type="checkbox" name="sun_workshop" ng-checked="workshop.flag" ng-model="workshop.flag" ng-click="workshop_method('sunday')"> {{workshop.WS_Option}}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22322568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档