2016-11-14 54 views
0

結合我創建了一個數組這樣angular2雙向無線電按鈕

this.list= [{ 
     id: 1, 
     value: 'One', 
     checked: true 
    }, 
     { 
     id: 2, 
     value: 'Two' 
     }]; 

,我試圖做雙向綁定這樣

<ul *ngFor="let data of list;"> 

      <div class="radio" > 
       <label> 
       <input type="radio" name="sex" [(ngModel)] = "data.checked" [checked]="data.checked">{{data.value}} 
</ul> 

,但它不工作,我想動態更新檢查變量單選按鈕被點擊

+0

不能使用無線電按鈕像複選框。您必須爲每個輸入聲明一個值並使用其他變量來處理選定的值。 – Polochon

+0

@Polochon它的工作,但有沒有辦法讓其他人檢查屬性爲false,因爲如果我這樣做,它使所有字段我按真正 – kohli

回答

1

您需要添加值時:

@Component({ 
    selector: 'my-app', 
    template: ` 
    <ul *ngFor="let data of list;"> 
    <li class="radio"> 
     <input type="radio" 
      [value]="data.value" 
      name="sex" [(ngModel)]="user.sex">{{data.value}} 
    </li> 
</ul> 
    `, 
}) 
export class App { 

    constructor() { 
    this.user = { 
     sex: 'One' 
    } 
    this.list= [{ 
     id: 1, 
     value: 'One', 
     checked: true 
    }, 
     { 
     id: 2, 
     value: 'Two' 
     }]; 
    } 

} 
+0

它不工作 – kohli

+0

我的代碼工作。 – 2016-11-15 15:49:29

1

我想你需要什麼,在組件來創建一個字段來保存單選按鈕組的設定值,並添加一個雙向綁定到值:

<ul> 
    <li *ngFor="let data of list"> 
     <input type="radio" 
       [value]="data.value" 
       name="sex" [(ngModel)]="selectedValue" /> 
    </li> 
</ul> 

{{selectedValue}} 


export class App { 
selectedValue:string; 
list= [{ 
     id: 1, 
     value: 'One' 
    }, 
     { 
     id: 2, 
     value: 'Two' 
     }]; 
}