取消选中复选框后从数组中删除字符串
remove strings from array after uncheck the chekbox
我的复选框数据在这里,
$scope.dataList = {
'ICT': true,
'OTTIX_DT': true,
'CP EMR AD': true,
}
<input type="checkbox" ng-model="miniAddons.dataList[data.jobName]"
ng-change="pickExtra($event,'miniAddons', chosenMiniAddons, data.jobName);">
$scope.pickExtra = function(evt,JBname,chosenMiniAddons,chosenOptions){
$scope.userSelectedMiniAddon = Object.keys($scope[miniAddons].dataList);
}
我的场景是 disable/enable 按钮,所以使用 var temp = Object.keys($scope.dataList)
让我喜欢 ['ICT','OTTIX_DT','CP EMR AD']
然后我可以检查数组的 .length
,基于数组长度,如果 length > 0
我会启用按钮
否则禁用它。
每当我单击复选框时,数组项都会按预期增加,但不知道如何在取消选中复选框时删除项。
简单来说,如果在 $scope.dataList
中一切正常 false
我需要禁用按钮,如果至少有一个键具有 true
值,我应该启用按钮。
目前使用纯旧的 JS,没有任何最新的 es6,所以对如何在纯旧的 js 中一起使用 filter 和 map 感到困惑。
请有人帮助我。
以题的当前信息来帮助你有点困难,但我感觉你的checklist并没有缩水,因为key没有从你的array中删除
尝试在您的 Object.keys(yourData)
上使用 filter function
$scope.dataList = {
'ICT': true,
'OTTIX_DT': true,
'CP EMR AD': true,
}
<input type="checkbox" ng-model="miniAddons.dataList[data.jobName]"
ng-change="pickExtra($event,'miniAddons', chosenMiniAddons, data.jobName);">
$scope.pickExtra = function(evt,JBname,chosenMiniAddons,chosenOptions){
// Will filter out each option that is false, so the list will be empty if all are uncheked
$scope.userSelectedMiniAddon = Object.keys($scope[miniAddons].dataList).filter((key => {
if($scope[miniAddons].dataList[key]) { // check if the value is true.
return key;
}
});
}
我的复选框数据在这里,
$scope.dataList = {
'ICT': true,
'OTTIX_DT': true,
'CP EMR AD': true,
}
<input type="checkbox" ng-model="miniAddons.dataList[data.jobName]"
ng-change="pickExtra($event,'miniAddons', chosenMiniAddons, data.jobName);">
$scope.pickExtra = function(evt,JBname,chosenMiniAddons,chosenOptions){
$scope.userSelectedMiniAddon = Object.keys($scope[miniAddons].dataList);
}
我的场景是 disable/enable 按钮,所以使用 var temp = Object.keys($scope.dataList)
让我喜欢 ['ICT','OTTIX_DT','CP EMR AD']
然后我可以检查数组的 .length
,基于数组长度,如果 length > 0
我会启用按钮
否则禁用它。
每当我单击复选框时,数组项都会按预期增加,但不知道如何在取消选中复选框时删除项。
简单来说,如果在 $scope.dataList
中一切正常 false
我需要禁用按钮,如果至少有一个键具有 true
值,我应该启用按钮。
目前使用纯旧的 JS,没有任何最新的 es6,所以对如何在纯旧的 js 中一起使用 filter 和 map 感到困惑。
请有人帮助我。
以题的当前信息来帮助你有点困难,但我感觉你的checklist并没有缩水,因为key没有从你的array中删除
尝试在您的 Object.keys(yourData)
上使用 filter function$scope.dataList = {
'ICT': true,
'OTTIX_DT': true,
'CP EMR AD': true,
}
<input type="checkbox" ng-model="miniAddons.dataList[data.jobName]"
ng-change="pickExtra($event,'miniAddons', chosenMiniAddons, data.jobName);">
$scope.pickExtra = function(evt,JBname,chosenMiniAddons,chosenOptions){
// Will filter out each option that is false, so the list will be empty if all are uncheked
$scope.userSelectedMiniAddon = Object.keys($scope[miniAddons].dataList).filter((key => {
if($scope[miniAddons].dataList[key]) { // check if the value is true.
return key;
}
});
}