Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Angularjs中使用一组复选框_Angularjs_Checkbox - Fatal编程技术网

在Angularjs中使用一组复选框

在Angularjs中使用一组复选框,angularjs,checkbox,Angularjs,Checkbox,我有以下问题: 我在数据库中有一组复选框和一个无关复选框,如果选中了无关复选框,则会保存一个空数组 我有两个用例: 1) 如果选中了“淡漠”,则在我选中另一个复选框“淡漠”未选中时,其他复选框将不被选中(这实际上起作用) 2) 如果我选中了所有复选框(除冷漠外),则应取消选中所有复选框,并选中冷漠。(这不起作用) 这是我的代码摘录 1) 要测试第一个用例: 选中“淡漠”,单击“已婚”后,淡漠将被取消选中,如果再次单击“已婚”以取消选中,淡漠将被选中 2) 点击单身,关系和婚姻,让他们检查,然后

我有以下问题:

我在数据库中有一组复选框和一个无关复选框,如果选中了无关复选框,则会保存一个空数组

我有两个用例:

1) 如果选中了“淡漠”,则在我选中另一个复选框“淡漠”未选中时,其他复选框将不被选中(这实际上起作用)

2) 如果我选中了所有复选框(除冷漠外),则应取消选中所有复选框,并选中冷漠。(这不起作用)

这是我的代码摘录

1) 要测试第一个用例: 选中“淡漠”,单击“已婚”后,淡漠将被取消选中,如果再次单击“已婚”以取消选中,淡漠将被选中

2) 点击单身,关系和婚姻,让他们检查,然后冷漠是检查和你点击的最后一个也是检查

希望我足够清楚。 我做错了什么?任何帮助或建议都将不胜感激

这是我的密码 HTML


相互限制/反作用的表单元素非常混乱 我也是。 我通常通过定义视图模型来解决这类问题 它表示表单状态并让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;
}
},对);