javascript - 使用 Angular 从数组中删除取消选中的复选框值

标签 javascript arrays angular checkbox

这很简单,但我仍然无法让它工作。

我选中了默认值,复选框。因此,在编辑时,当然选择默认值,但后来我想删除默认值并选择另一个值。这是

array1=[] //empty

选中复选框后,它将插入到该数组中

array1=["sun"]

如果我选择 3 个值 (array1["sun","stars","moon"]) 但我取消选择第一个选择(默认选择),它将仍然在数组中。 (array1["sun","stars","moon"]) 但我预期的结果是这样的:

array1["stars","moon"]

不再有首选。那么如何使用 Angular/Javascript 从数组中删除取消选择的值呢?

我尝试过使用spliceremoveset

最佳答案

在项目中开发和使用相同的东西:

模板面:

<label *ngFor="let hobby of hobbies" #checkbox class="mdl-checkbox mdl-js-checkbox">
    <input type="checkbox" name="hobbies" [value]="hobby" 
    (change)="populateMyHobbies(hobby,$event.target.checked)" class="mdl-checkbox__input">
    <span class="mdl-checkbox__label">{{hobby}}</span>
</label>

组件端:

selectedHobbies = [];

populateMyHobbies(value , status:boolean)
{
    if(this.selectedHobbies.indexOf(value) === -1 && status)
    {
        this.selectedHobbies.push(value);
    }
    else if(!status)
    {
        let index = this.selectedHobbies.indexOf(value);
        this.selectedHobbies.splice(index, 1);
    }
}

这里selectedHobbies会给你你想要的。

只需根据您的应用更改名称。

关于javascript - 使用 Angular 从数组中删除取消选中的复选框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43246909/

相关文章:

c - (C程序)随机数数组程序,并按升序排序,然后求中位数

python - 改变列表的列表,如矩阵

angular - 如何在 vs 代码中启用 HTML lint?

javascript - 如何在更新卡片的弹出窗口中获取 2 个 div 值。

javascript - Node.js多个Sequelize原始sql查询子查询

c - 如何在以下函数内传递十六进制数据

angular - 在卡片图像上显示 Firebase 中保存的图像 URL?

Angular:HTTP GET 请求 - 选项 405(不允许方法)

javascript - 不断读取JSON数据库

javascript - scope.$parent.messageContent=值不更新指令的父范围