在 *ngFor angular 2 中获取选中的复选框值

Get selected checkbox value in *ngFor angular 2

我有 json 如下:

[
  {
    "name": "Parent",
    "submenus": [
        {
            "name":"Child1"
        },
        {
            "name":" Child2"
        },
        {
            "name":" Child3"
        },
        {
            "name":"Child4"
        },
        {
            "name":"Child5"
        }
    ]
  }
]

和 html 文件中的代码

 <li *ngFor='let submenu of filterType.submenus'>
         <div class="checkbox">
        <input id="checkbox1" class="styled" type="checkbox" [(ngModel)]="submenu.selected">
        <label for="checkbox1">
                         {{submenu.name}}
                    </label>
    </div>

      </li>

如何只获取那些被点击的复选框。请帮帮我,因为我要将选定的值传递给 angular highchart 图表。

因为您已将复选框绑定到您的模型:

[(ngModel)]="submenu.selected"

您所要做的就是 crawl/iterate 到 filterType.submenus 并筛选出 selected===true

您可以使用您的子菜单

创建一些临时文件json
   filternames = [
            {
              name: 'Child1',
              checked: false
            },
            {
              name: 'Child2',
              checked: false
            },
            {
              name: 'Child3',
              checked: false
            },
          ];

           checked() {
          return this.filternames .filter(item => { return item.checked; });
        }

HTML

  <li *ngFor='let submenu of filternames'>
         <div class="checkbox">
        <input id="checkbox1" class="styled" type="checkbox" 
[(ngModel)]="submenu.checked" [value]="submenu.name">
        <label for="checkbox1">
                         {{submenu.name}}
                    </label>
    </div>

      </li>


      <pre>Selected names: <span *ngFor="let filternames of checked()" ">{{ filternames.name}}</span></pre

>

checked() 函数始终 returns 您选择的复选框值