我试图提出一个简单的切换功能,其中一个数组是建立在选择发送到我的角度2应用程序中的复选框。我似乎还记得,通过设置一个与之相反的函数,或者诸如此类的东西,你可以在哪里处理切换。下面是添加和删除数组元素的两个函数:
private onItemSelected(item)
{
if (item)
{
this.itemsArray.push(item);
console.log(this.itemsArray);
return this.itemsArray;
}
}
private onItemRemoved(item)
{
if (item)
{
this.itemsArray.splice(item);
console.log(this.itemsArray);
return this.itemsArray;
}
}然后在我看来我试着:
<md-checkbox (change)="onItemSelected('A') === onItemRemoved('A')">A</md-checkbox>
<md-checkbox (change)="onItemSelected('B') === onItemRemoved('B')">B</md-checkbox>
<md-checkbox (change)="onItemSelected('C') === onItemRemoved('C')">C</md-checkbox>但在当前的实现中,这是不正确的。然而,我确实记得看到这样的东西,虽然我不记得具体的语法。我还考虑在条件检查中使用“选中”JavaScript属性。这会是一个更好的方式来实现这一点吗?或者,在根据复选框选择添加和删除项时,是否有更简单的方法来处理数组?
更新:在“我更亲近”的建议之后。有了这个实现,我可以为一个项切换或关闭,数组将正确地反映这一点。但是,对于多个项选择,它不起作用:
private isChecked: boolean = false;
private onItemSelected(discipline)
{
this.isChecked = !this.isChecked;
if (item && this.isChecked)
{
this.itemsArray.push(item);
console.log(this.itemsArray);
}
else {
if (item && !this.isChecked)
{
this.itemsArray.splice(item);
console.log(this.itemsArray);
}
return this.itemsArray;
}
}发布于 2017-09-25 18:47:09
我已经张贴了一个更简单的版本,而没有添加任何额外的属性。请试试下面的代码
private onItemSelected(item)
{
const index: number = this.itemsArray.indexOf(item);
if(index < 0){
this.itemsArray.push(item);
console.log(this.itemsArray);
}
else if(index != -1){
this.itemsArray.splice(index,1);
console.log(this.itemsArray);
}
return this.itemsArray;
}https://stackoverflow.com/questions/46411966
复制相似问题