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}}
</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}}
</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}}
</label>
</div>
{{w.name}}
你可以看到这是可行的 通常在对象中使用选定的属性,在输入中使用具有该属性的ng模型。如果需要,可以使用ng。请尝试一下,通常在对象中使用选定的属性,在输入中使用具有该属性的ng模型。如果需要,您可以使用ng。请试一试