Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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
Javascript 自动选择并收集数组中的复选框值_Javascript_Angularjs_Checkbox - Fatal编程技术网

Javascript 自动选择并收集数组中的复选框值

Javascript 自动选择并收集数组中的复选框值,javascript,angularjs,checkbox,Javascript,Angularjs,Checkbox,我在设置(检查)和从视图中提取数据数组到模型时遇到问题。让我用代码进一步解释我的问题 这是我提供工作日的控制器 $scope.workDays = [ {name: 'Monday', value: 1}, {name: 'Tuesday', value: 2}, {name: 'Wednesday', value: 3}, {name: 'Thursday', val

我在设置(检查)和从视图中提取数据数组到模型时遇到问题。让我用代码进一步解释我的问题

这是我提供工作日的控制器

$scope.workDays = [
                {name: 'Monday', value: 1},
                {name: 'Tuesday', value: 2},
                {name: 'Wednesday', value: 3},
                {name: 'Thursday', value: 4},
                {name: 'Friday', value: 5},
                {name: 'Saturday', value: 6},
                {name: 'Sunday', value: 7},
            ]
$scope.selectedDays = "1,3,4,6";
然后我在HTML中用ng repeat呈现这些复选框

<label>Working days</label>
<div class="checkbox">
     <label ng-repeat="w in workDays" >
            <input type="checkbox" ng-value="w.value" ng-checked="selectedDays" >
            {{w.name}}&nbsp;&nbsp;
     </label>
</div>
然后我选择并取消选择一些复选框,控制台日志报告空数组
[]

我希望你们能帮助我。如果您需要任何其他信息,请让我知道,我会提供。谢谢大家!

var-app=angular.module('plunker',[]);
应用程序控制器('MainCtrl',函数($scope){
$scope.name='World';
$scope.workDays=[{
姓名:‘星期一’,
价值:1
}, {
姓名:"星期二",,
价值:2
}, {
姓名:"星期三",,
价值:3
}, {
姓名:"星期四",,
价值:4
}, {
姓名:‘星期五’,
价值:5
}, {
姓名:‘星期六’,
价值:6
}, {
姓名:‘星期日’,
价值:7
}, ]
$scope.selectedDays=[1,3,4,6];
$scope.myData=$scope.selectedDays;
$scope.getData=函数(天){
风险值指数=$scope.myData.indexOf(天);
如果(指数<0){
$scope.myData.push(天)
log('myData',$scope.myData);
}否则{
$scope.myData.splice(索引,1)
log('myData',$scope.myData);
}
}
$scope.IsChecked=函数(天){
var index=$scope.selectedDays.indexOf(天);
如果(索引>-1){
返回真值
}否则{
返回错误
}
}
});

安古拉斯普朗克
文件。写(“”);
你好{{name}}

工作日 {{w.name}}
var-app=angular.module('plunker',[]);
应用程序控制器('MainCtrl',函数($scope){
$scope.name='World';
$scope.workDays=[{
姓名:‘星期一’,
价值:1
}, {
姓名:"星期二",,
价值:2
}, {
姓名:"星期三",,
价值:3
}, {
姓名:"星期四",,
价值:4
}, {
姓名:‘星期五’,
价值:5
}, {
姓名:‘星期六’,
价值:6
}, {
姓名:‘星期日’,
价值:7
}, ]
$scope.selectedDays=[1,3,4,6];
$scope.myData=$scope.selectedDays;
$scope.getData=函数(天){
风险值指数=$scope.myData.indexOf(天);
如果(指数<0){
$scope.myData.push(天)
log('myData',$scope.myData);
}否则{
$scope.myData.splice(索引,1)
log('myData',$scope.myData);
}
}
$scope.IsChecked=函数(天){
var index=$scope.selectedDays.indexOf(天);
如果(索引>-1){
返回真值
}否则{
返回错误
}
}
});

安古拉斯普朗克
文件。写(“”);
你好{{name}}

工作日 {{w.name}}
向控制器添加一个函数并调用它来初始化模型($scope.myData),如下所示:

控制器

$scope.myData = [];
function getMyData() {
   angular.forEach($scope.workDays, function(day) {
     var newDay = {
       name: day.name,
       selected: $scope.selectedDays.indexOf(day.value) >= 0
     };
     $scope.myData.push(newDay);
   });
}

getMyData();
然后,您可以像这样简化标记:

标记

<div class="checkbox">
  <label ng-repeat="w in myData">
    <input type="checkbox" ng-model="w.selected"> {{w.name}}&nbsp;&nbsp;
  </label>
</div>

{{w.name}}

你可以看到这是可行的

向控制器添加一个函数并调用它来初始化模型($scope.myData),如下所示:

控制器

$scope.myData = [];
function getMyData() {
   angular.forEach($scope.workDays, function(day) {
     var newDay = {
       name: day.name,
       selected: $scope.selectedDays.indexOf(day.value) >= 0
     };
     $scope.myData.push(newDay);
   });
}

getMyData();
然后,您可以像这样简化标记:

标记

<div class="checkbox">
  <label ng-repeat="w in myData">
    <input type="checkbox" ng-model="w.selected"> {{w.name}}&nbsp;&nbsp;
  </label>
</div>

{{w.name}}

你可以看到这是可行的

通常在对象中使用选定的属性,在输入中使用具有该属性的ng模型。如果需要,可以使用ng。请尝试一下,通常在对象中使用选定的属性,在输入中使用具有该属性的ng模型。如果需要,您可以使用ng。请试一试