Angular,在ng中重复获取选中复选框(或单选框)的索引
Angular, getting index of checked checkbox (or radio) in ng-repeat
我正在创建一组具有ng repeat的表单,每个表单都有一个复选框(如果重要的话,可能会更改为单选),我正在尝试操作选中的特定级别。所以我想做的是传递复选框的索引(ng重复中的索引)。让我向你展示我的意思
<div class="saInstrcutionTableRow" ng-repeat="parent in listTable track by $index">
<div class="saInstrcutionLeft"></div>
<!-- parent levels -->
<div class="saInstrcutionCRight saInstrcutionTitle"><div class="parentSub1"> <input type="checkbox" ng-model="levelPicker">{{parent.name}}</div></div>
</div>
</div>
所以在这里,我只是在ng model="levelPicker"下用输入重复这个名称。我按下了一个按钮,它使用了我设置的一个功能,该功能只需要在重复中传递复选框的索引,所以它是这样的-
<button type="button" class="resultsButton" ng-click="submitNewSub(Checkbox index here)">Submit</button>
是否有某种方法可以针对选中的复选框并在重复中获取其索引?我正在使用它来添加子项。我尝试了一些方法,但我不确定如何直接引用它并获得它的索引(在角度内)。任何意见都将不胜感激。谢谢
您可以使用类似的东西捕获所选索引
<input type="checkbox" ng-change="onChange({{$index}})" ... />
on更改功能
$rootScope.onChange = function(idx) {
$rootScope.selectedIndex = idx;
};
然后使用selectedIndex
来满足您的需求。下面是一个快速示例
ng repeat为每个项创建一个新的范围,因此父项不能直接访问任何复选框设置的"levelPicker"。
最正确的方法可能是这样的:
$scope.listTable = [
{ name : 'a', selected: false },
{ name : 'b', selected: false },
{ name : 'c', selected: false }
];
$scope.selectMe = function ( index, previousValue ) {
$scope.listTable[index].selected = !previousValue;
};
$scope.submitNewSub = function () {
for ( var i=0; i<$scope.listTable.length; i++ ) {
console.log($scope.listTable[i].name+
($scope.listTable[i].selected ?
' is selected' :
' is not selected')
);
}
}
在html:中有这个
<input type="checkbox" ng-click="selectMe($index, levelPicker)" ng-model="levelPicker">{{parent.name}}
或者,您可以查看所有子作用域并检查它们的levelPicker值:
$scope.submitNewSub = function () {
for(var cs = $scope.$$childHead; cs; cs = cs.$$nextSibling) {
console.log($scope.listTable[cs.$index].name+
(cs.levelPicker ?
' is selected' :
' is not selected')
);
}
};
相关文章:
- 选中单选框时将属性添加到输入字段
- 选中单选框时禁用输入框
- 基于单选框更新页眉,选中并选择输入文本
- 选中单选框时,将文本添加到文本框中
- 如果选中单选框,则将值添加到合计
- 使用javascript提交表单并从字段/单选框/复选框/文本区域获取数据
- html/jquery输入类型:单选框中的文本不起作用
- 按字母顺序对输入单选框进行排序
- 使用JQuery启用输入字段的单选框
- 如果所有单选框在jQuery中都有一个选择,则显示一个元素
- 如何在应用jquery buttonset()后取消选中所有具有相同类名的单选框
- 默认情况下无法预先选择所需的单选框
- 当选择特定的单选框时,使用jquery禁用循环中的文本框
- Angular,获取Ng中复选框(或单选框)所需的Ng重复
- 如何创建单选框文本库
- 验证是否选中了分组单选框
- Jquery 单选框选中查找显示以前选中的项目
- 如果选中单选框或选择菜单更改,则运行自定义js函数
- 单选框不会验证
- Angular,在ng中重复获取选中复选框(或单选框)的索引