以下是我的复选框:
<input type="checkbox" ng-model="data.lang[0]" id="FR" ng-true-value="'FR'" ng-false-value="''" checked/>FR
<input type="checkbox" ng-model="data.lang[1]" id="NL" ng-true-value="'NL'" ng-false-value="''" />NL
<input type="checkbox" ng-model="data.lang[2]" id="EN" ng-true-value="'EN'" ng-false-value="''" />EN
我想检查一种语言并更新我的模型&data;朗&&#39;
但我有一个问题:
If second checkbox is checked i have :
[null,"NL"]
If the third is checked i have :
[null,null,'EN']
我需要拥有什么:
If second checkbox is checked :
['NL']
If second and third are checked :
['NL','EN']
If all are checked :
['FR','NL','EN']
我不知道如何像我想要的那样更新我的模型你能帮助我吗?感谢
答案 0 :(得分:2)
更改您的数据结构并重复输入您的输入,类似于以下内容。
$scope.langs = [
{
val: 'en',
checked: false
}
]
<input type="checkbox" ng-repeat="lang in langs" ng-model="lang.checked">{{lang.val}}</input>
然后执行以下操作:
$scope.sendMyData() {
$scope.langs.forEach(function(item) {
if (item.checked) $scope.myData.push(item.value);
});
}
答案 1 :(得分:0)
这是因为您的data.lang[]
长度为3.即如果有一个值,则其他值为null
。
尝试使用ng-repeat
,这样就可以了。