Я пытаюсь использовать компонент перетаскивания материала angular, чтобы изменить порядок списка базовых c радиовходов.
Когда страница загружается, проверяется правильный радиовход. Моя проблема в том, что когда я переупорядочиваю отмеченный элемент в списке с помощью дескриптора [Grab], кажется, что радио-выбор сбрасывается, и я не могу понять, как сохранить этот выбор.
Действительно странная вещь для меня, если бы это был флажок, он бы работал нормально. Итак, я предполагаю, что это как-то связано с тем, как я настроил радиовход.
Благодарю за любую помощь, которую вы можете предложить.
Вот мой stackblitz: https://stackblitz.com/edit/angular-2q94xh
app.component. html
<table cdkDropList (cdkDropListDropped)="drop($event)">
<tr *ngFor="let selection of content" cdkDrag>
<td>
<div class="grab" cdkDragHandle>[Grab]</div>
</td>
<td>
<input
[id]="selection.id"
type="radio"
name="radio"
[checked]="selection.selected"
>
</td>
<td>{{ selection.selected }}</td>
</tr>
</table>
app.component.ts
import { Component } from '@angular/core';
import {CdkDragDrop, moveItemInArray, transferArrayItem, CdkDrag} from '@angular/cdk/drag-drop';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
drop(event: CdkDragDrop<string[]>) {
moveItemInArray(this.content, event.previousIndex, event.currentIndex);
}
content = [
{
"id": "1",
"selected": false
},
{
"id": "2",
"selected": false
},
{
"id": "3",
"selected": true
}
]
}