亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何顯示每個復選框值而不是選定的位置值

如何顯示每個復選框值而不是選定的位置值

阿波羅的戰車 2024-01-18 15:55:38
首先,對于問題語言混亂感到抱歉,我會盡力解釋。我想添加/顯示所選復選框的值。我能夠部分實現它,但當前的問題是,如果我選擇一個復選框,它會顯示第一個值,在兩個復選框上,它會顯示第二個值 2 次,而不是第一個第二個,在三個復選框上,它會顯示第三個值 3 次,而不是第一個,第二、第三。您可以在這里查看: https:?//angular-ivy-d2gbad.stackblitz.io/?單擊每一行查看表格代碼:https://stackblitz.com/edit/angular-ivy-d2gbad ?file=src%2Fapp%2Fapp.component.html
查看完整描述

2 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

請更新您的addSubData功能,如下所示 -


addSubData(user: any) {

    let i: any;

    i = document.querySelectorAll('input[type="checkbox"]:checked');

    for(var checked of i) {

      const newUser = Object.assign({}, user)

      newUser.dl = checked.value;

      newUser.sub_impact = "Applicable";

      newUser.co_score = "Added";

      this.userObj.assigned_to.push(newUser);

    }  

  }

問題是您將這些值分配給同一個用戶對象。所以它也在更新數組中的值。您需要使用克隆您的用戶對象Object.assign。


另外,您通過索引遍歷數組來獲取值,但索引k-1將始終在 for 循環中返回相同的值,因為它們在 for 循環中是常量。我已經更新了代碼,因此它可以從復選框本身中獲取。


除此之外,還有一些小問題,我想一旦你解決了這個問題,你就會遇到這些問題。


查看完整回答
反對 回復 2024-01-18
?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

你的代碼有點混亂。真的我無法想象你想這樣做,但是..


第一的。當我們有輸入時,在 Angular 中我們使用[(ngModel)]="variable". 這使得在 .ts 中我們有變量的值,在 .html 中我們顯示變量的值。


因此,在 .ts 中定義四個變量


gender:string

impact:string

fromDate:any

toDate:any

你的“申請表格”必須是這樣的


Gender:<select [(ngModel)]="gender">

   ...

</select>

Impact:<select [(ngModel)]="impact">

   ...

</select>

<input type="date" [(ngModel)]="fromDate">

<input type="date" [(ngModel)]="toDate">

          class="form-control form-control-sm"

          name="gender"

          ngModel

          [ngModelOptions]="{updateOn: 'submit'}"

        >

同上,當您循環遍歷類別時,您可以使用輔助數組


categories:boolean[]=[]

并使用


<ul *ngFor="let list of dlCategory">

    <div class="form-check form-check-inline">

        <input type="checkbox" [(ngModel)]="categories[i] 

              name="{{list.name}}">

        <label class="form-check-label" for="">{{list.label}}</label>

     </div>

 </ul>

好吧,我在之前的文章中告訴你如何“轉換”數組中檢查值的列表與檢查的值,這樣


因此,我們將創建一個包含 true、false 的布爾值數組,將“用戶”的屬性變成具有所選值的


<ul *ngFor="let list of dlCategory">

    <div class="form-check form-check-inline">

        <input #check type="checkbox" 

              [ngModel]="user.categories.indexOf(list.name)>=0" 

              (ngModelChange)="onChange(list.name,check.checked)"

              name="{{list.name}}">

        <label class="form-check-label" for="">{{list.label}}</label>

     </div>

 </ul>

onChange 變得像


  onChange(option:string,checked:boolean)

  {

     if (checked && this.user.categories.indexOf(option)<0)

         this.user.categories=[...this.user.categories,option]

         .sort((a,b)=>this.dlCategory.findIndex(x.name==a)>this.dlCategory.findIndex(x.name==b)?1:-1)

    if (!checked)

          this.user.categories=this.user.categories.filter(x=>x!=option)

  }

最后,當我們想要顯示類別的數據時,我們可以迭代 dlCategory 并僅顯示貓是否在 user.categories 中


<div *ngFor="cat of dlCategories;let i=index>

  <ng-container *ngIf="user.categories.indexOf(cat.name)>=0">

     {{cat.name}}{{cat.value}}

  <ng-container>

</div>

注意:我很著急,代碼可能有語法錯誤,但我希望答案可以幫助你一些


查看完整回答
反對 回復 2024-01-18
  • 2 回答
  • 0 關注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號