Javascript 计算Angular 2 typescript中选中了多少复选框?

Javascript 计算Angular 2 typescript中选中了多少复选框?,javascript,angular,typescript,checkbox,Javascript,Angular,Typescript,Checkbox,如何使用typescript计算角度为2/4的复选框数。它应显示选中复选框的计数,如果未选中,则应减小为0 我的示例是来自服务器的数据,我在其中循环: 我知道如何在Angularjs中使用foreach函数,但无法理解如何在Typescript中执行此操作,通常我必须将angular foreach方法替换为Typescript foreach方法?需要帮助吗 app.ts data = [ {"name":"jason"}, {"name":"james"},

如何使用typescript计算角度为2/4的复选框数。它应显示选中复选框的计数,如果未选中,则应减小为0

我的示例是来自服务器的数据,我在其中循环:

我知道如何在Angularjs中使用foreach函数,但无法理解如何在Typescript中执行此操作,通常我必须将angular foreach方法替换为Typescript foreach方法?需要帮助吗

app.ts

  data = [
     {"name":"jason"},
     {"name":"james"},
     {"name":"josh"},
     {"name":"joshua"}
          ];



calculateChecked = function() {            
 let count = 0;

  angular.forEach(this.data, function(value) {    //don't work in typescript
    if(value.checked)
      count++;
  });

  return count;
   };
  };
app.htm

 <li class="list-group-item" *ngFor="let user of data">
    <input type="checkbox" [ngModel]="user.checked"/>
    {{user.name}}
    </li>


    <p>total checked: {{calculateChecked()}}</p>
  • {{user.name}
  • 检查的总数:{{calculateChecked()}}

    应显示:

    如果未选中,则应显示0

      <div class="sasha-ui-list" #em *ngFor="let email of emails; let i=index"
       (click)="onAddtoMessage(email)"> <div class="row"> <div class="col-lg-1">
      <input class="magic-checkbox sasha_checkbox" name="emails" type="checkbox" 
      id="{{email.id}}" value="email" [checked]="checkboxFlag"> <label for="
     {{email.id}}"></label> </div> 
    

    未测试代码,但如果数据是数组,类似的方法应该可以工作

     this.data.map((value) => {
         if(value.checked)
           count++;   
     });
    

    没有经过测试的代码,但如果数据是数组,类似的东西应该可以工作

     this.data.map((value) => {
         if(value.checked)
           count++;   
     });
    

    单击时应将其设置为0,如下所示

     changed(){
        this.count = 0;
        this.data.forEach(item=>{
          console.log(item)
          if(item.checked){
            this.count= this.count+1
          }  
        } )
      }
    
    
    <ul> <li class="list-group-item" *ngFor="let user of data">
    
    <input type="checkbox" [(ngModel)]="user.checked" (ngModelChange)="changed()"/>
    {{user.name}}
    </li>
    
    changed(){
    此值为0.count;
    this.data.forEach(项=>{
    console.log(项目)
    如果(选中项){
    this.count=this.count+1
    }  
    } )
    }
    
    • {{user.name}

    按如下所示单击时,应将其设置为0

     changed(){
        this.count = 0;
        this.data.forEach(item=>{
          console.log(item)
          if(item.checked){
            this.count= this.count+1
          }  
        } )
      }
    
    
    <ul> <li class="list-group-item" *ngFor="let user of data">
    
    <input type="checkbox" [(ngModel)]="user.checked" (ngModelChange)="changed()"/>
    {{user.name}}
    </li>
    
    changed(){
    此值为0.count;
    this.data.forEach(项=>{
    console.log(项目)
    如果(选中项){
    this.count=this.count+1
    }  
    } )
    }
    
    • {{user.name}

    使用for..of循环:

    this.count: number = 0;
    for (let datum of data) {
     if(dataum.checked) count++;
    }
    
    以及

    <ul> <li class="list-group-item" *ngFor="let user of data">
      <input type="checkbox" [(ngModel)]="user.checked" (ngModelChange)="changed()"/>
    {{user.name}}
    </li>
    
    <p>total checked: {{count}}</p>
    
    • {{user.name}
    • 已检查总数:{{count}

    使用for..of循环:

    this.count: number = 0;
    for (let datum of data) {
     if(dataum.checked) count++;
    }
    
    以及

    <ul> <li class="list-group-item" *ngFor="let user of data">
      <input type="checkbox" [(ngModel)]="user.checked" (ngModelChange)="changed()"/>
    {{user.name}}
    </li>
    
    <p>total checked: {{count}}</p>
    
    • {{user.name}
    • 已检查总数:{{count}


    很好的答案和示例,但我无法将选中的键添加到array@OleksandrFedorov你能克隆数组并附加属性吗?我真的不想这样做,因为我会有大量的数据。你能列出所有约束条件吗(有没有办法在不向数组中添加属性的情况下进行计数,因为我将有来自服务器的自定义数据。每个对象都链接到一个复选框。我需要做的是递增/递减计数所选框的数量。我无法真正理解在不添加选中属性的情况下是如何计数的伟大答案和示例,但我无法添加密钥。)去看电影array@OleksandrFedorov你能克隆数组并附加属性吗?我真的不想这样做,因为我会有大量的数据。你能列出所有约束条件吗(有没有办法在不向数组添加属性的情况下进行计数,因为我将有来自服务器的自定义数据。每个对象都链接到一个复选框。我需要做的是递增/递减选择的框数。如果不添加选中的属性,我真的无法理解这里是如何计数的。)