javascript - Angular2,切换选中的复选框列表

标签 javascript html angular

有没有办法在 Angular2 中切换选中的复选框列表?

我有一个按钮,当按下该按钮并且查看完整列表时,它将仅显示列表中选中的项目。再次按下按钮时,将显示整个列表。

Plunkr:http://plnkr.co/edit/jZz4XoHjYJ40bjt2eOU5?p=preview

//our root app component
import {Component, NgModule} from '@angular/core'
import {BrowserModule} from '@angular/platform-browser'

import { FormsModule, ReactiveFormsModule } from '@angular/forms';

@Component({
  selector: 'my-app',
  template: `
    <div>
      <h2>Hello {{name}}</h2>
    </div>
       <li *ngFor="let col of data" class="form-group">
                                    <input type="checkbox" name="col" value="{{col.value}}" [(ngModel)]="col.value" (change)="addColumns(col)" />{{col.name}}
                                    </li>
  `,
})
export class App {
  name:string;
  data:any[]=[{"id":"13","name":"AAA"},{"id":"15","name":"BBB"},{"id":"20","name":"CCC"}]
  constructor() {
    this.name = 'Angular2'
  }
  get selectedcheckboxes() {
    return this.data
      .filter(opt => opt.value)  

  }

  addColumns(col){
    this.selectedcheckboxes;
    console.log(this.selectedcheckboxes)
  }
}

@NgModule({
  imports: [ BrowserModule,FormsModule ],
  declarations: [ App ],
  bootstrap: [ App ]
})
export class AppModule {}

HTML:

<body>
    <my-app>
    loading...
  </my-app>
  <button class="check">Collapse/Expand</button>
  </body>

在 Angular1 中,它看起来像这样:http://jsfiddle.net/jzhang172/of4yy8k9/我希望在 Angular2 中做同样的事情,但无法理解语法。

最佳答案

您可以将主数组放在其他变量中,然后只需根据单击的按钮更改数据变量(展开或折叠),您可能需要一个变量来定义它是完整列表还是选定列表

类似于:

isFullList: boolean;
mainData: Array<any> = [your main data here];
data: Array<any> = [data to use in list]; //should initied by mandata
toggle() {
    //this.isFullList: boolean

    if (!this.isFullList) {
      this.data = [...this.mainData];
    } else {
      this.data = [...this.selectedcheckboxes];
    }
    console.log(this.data)
    this.isFullList = ! this.isFullList
}

骗子:http://plnkr.co/edit/V1iiX87gYVMUtIkmpMfT?p=preview

关于javascript - Angular2,切换选中的复选框列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45853784/

相关文章:

javascript - 用另一个图像替换图像,然后在超时后再次替换 - Javascript

css - Angular 7 : ng-invalid vs :invalid

Angular 光滑网格日期格式更改仅显示在网格中

javascript - Angular从html中的控件获取值

javascript - Backbone.Collection 触发 'reset' 但不是 'add'

javascript - 当将其他可排序项目移到其上时,如何使可排序行为像可放置项

javascript - 如何在 node.js sequelize 中使用 varchar?

javascript - 如何在模态框中正确放置 .addClass 和 .removeClass?

Angular CDK Overlay - dispose 和 detach 有什么区别?

asp.net - 如何在每个页面上引用 JavaScript 文件? (ASP.NET 1.1)