在Angularjs中使用一组复选框
我有以下问题: 我在数据库中有一组复选框和一个无关复选框,如果选中了无关复选框,则会保存一个空数组 我有两个用例: 1) 如果选中了“淡漠”,则在我选中另一个复选框“淡漠”未选中时,其他复选框将不被选中(这实际上起作用) 2) 如果我选中了所有复选框(除冷漠外),则应取消选中所有复选框,并选中冷漠。(这不起作用) 这是我的代码摘录 1) 要测试第一个用例: 选中“淡漠”,单击“已婚”后,淡漠将被取消选中,如果再次单击“已婚”以取消选中,淡漠将被选中 2) 点击单身,关系和婚姻,让他们检查,然后冷漠是检查和你点击的最后一个也是检查 希望我足够清楚。 我做错了什么?任何帮助或建议都将不胜感激 这是我的密码 HTML在Angularjs中使用一组复选框,angularjs,checkbox,Angularjs,Checkbox,我有以下问题: 我在数据库中有一组复选框和一个无关复选框,如果选中了无关复选框,则会保存一个空数组 我有两个用例: 1) 如果选中了“淡漠”,则在我选中另一个复选框“淡漠”未选中时,其他复选框将不被选中(这实际上起作用) 2) 如果我选中了所有复选框(除冷漠外),则应取消选中所有复选框,并选中冷漠。(这不起作用) 这是我的代码摘录 1) 要测试第一个用例: 选中“淡漠”,单击“已婚”后,淡漠将被取消选中,如果再次单击“已婚”以取消选中,淡漠将被选中 2) 点击单身,关系和婚姻,让他们检查,然后
相互限制/反作用的表单元素非常混乱 我也是。 我通常通过定义视图模型来解决这类问题 它表示表单状态并让javascript代码处理 协调而不是对个别事件作出反应 以下是简化的示例: 在模板中:
<label class="checkbox inline" ng-repeat="item in sexuality">
<input type="checkbox" ng-model="item.selected"/>{{item.text}}
</label>
<label class="checkbox inline">
<input type="checkbox" ng-model="indifferent"/>indifferent
</label>
{{item.text}
漠不关心的
在控制器中:
$scope.$watch('indifferent', function(v) {
if (!v) return;
for ( var i = 0; i < $scope.sexuality.length; ++i ) {
$scope.sexuality[ i ].selected = false;
}
});
$scope.$watch('sexuality', function(arr) {
var selected = arr.reduce(function(s, c) { return s + (c.selected ? 1 : 0); }, 0);
if ( selected === arr.length ) {
$scope.indifferent = true;
} else if ( selected > 0 ) {
$scope.indifferent = false;
}
}, true );
$scope.$watch('nifferent',函数(v){
如果(!v)返回;
对于(变量i=0;i<$scope.sexuality.length;++i){
$scope.sexuality[i].selected=false;
}
});
$scope.$watch(‘性’、功能(arr){
var selected=arr.reduce(函数(s,c){返回s+(c.selected?1:0);},0);
如果(选定===arr.length){
$scope.interference=true;
}如果选择,则为else(已选择>0){
$scope.interference=false;
}
},对);
相互限制/反作用表单元素非常混乱
我也是。
我通常通过定义视图模型来解决这类问题
它表示表单状态并让javascript代码处理
协调而不是对个别事件作出反应
以下是简化的示例:
在模板中:
<label class="checkbox inline" ng-repeat="item in sexuality">
<input type="checkbox" ng-model="item.selected"/>{{item.text}}
</label>
<label class="checkbox inline">
<input type="checkbox" ng-model="indifferent"/>indifferent
</label>
{{item.text}
漠不关心的
在控制器中:
$scope.$watch('indifferent', function(v) {
if (!v) return;
for ( var i = 0; i < $scope.sexuality.length; ++i ) {
$scope.sexuality[ i ].selected = false;
}
});
$scope.$watch('sexuality', function(arr) {
var selected = arr.reduce(function(s, c) { return s + (c.selected ? 1 : 0); }, 0);
if ( selected === arr.length ) {
$scope.indifferent = true;
} else if ( selected > 0 ) {
$scope.indifferent = false;
}
}, true );
$scope.$watch('nifferent',函数(v){
如果(!v)返回;
对于(变量i=0;i<$scope.sexuality.length;++i){
$scope.sexuality[i].selected=false;
}
});
$scope.$watch(‘性’、功能(arr){
var selected=arr.reduce(函数(s,c){返回s+(c.selected?1:0);},0);
如果(选定===arr.length){
$scope.interference=true;
}如果选择,则为else(已选择>0){
$scope.interference=false;
}
},对);