Уникальное значение атрибута id в угловых для радиокнопки

Мне нужно установить уникальный идентификатор для каждой радиокнопки. Эта же кнопка повторяется 4 раза в той же форме.

(поле 1: первые два выбора радио, поле 2: следующие два выбора радио

Я пытаюсь установить уникальное значение для id, но не могу этого сделать.

Необходимо: [id]="g.name - g.id"

Попробовал: [id] ="{{'g.name'+ g.id}}

Переключатель HTML:

 <div *ngFor="let g of groups">
     <input type="radio" 
            [name]="g.name"  
            [id]="g.name"   <!-- expected id="g.name+g.id" -->
            [value]="option.value"                      
            [(ngModel)]="radioModel[groupId]" 
            [checked]="option.selected"/>
     <label [for]="option.name">{{option.name}}
 </div> 

Любые предложения будут полезны.

3 ответа

Я думаю, что вы пытаетесь сделать одну из этих двух привязок:

[id]="g.name + g.id"         <!-- No separation between g.name and g.id -->
[id]="g.name + '-' + g.id"   <!-- g.name and g.id separated with a dash -->

Смотрите этот стек для демонстрации.

Попробуйте использовать индекс строки и использовать этот индекс в атрибуте id.

<div *ngFor="let g of groups;let i =index;">
     <input type="radio" 
            [name]="g.name"  
            [id]="i"   <!-- expected id="g.name+g.id" -->
            [value]="option.value"                      
            [(ngModel)]="radioModel[groupId]" 
            [checked]="option.selected"/>
     <label [for]="option.name">{{option.name}}
 </div>

Ваш массив групп содержит 1 строку или 4 строки?

Сделайте свой идентификатор радиокнопки таким

      [id]="{{g.name + g.id + 'radio1'}}"   <!-- expected id="g.name+g.id" -->

для следующей радиокнопки используйте 'radio2', что сделает каждый идентификатор радиокнопки другим

Другие вопросы по тегам