#angular-dart
#angular-dart
Вопрос:
Используя angular dart, у меня есть диалоговое окно материала с основным списком в нем. Когда появится диалоговое окно, я хочу, чтобы конечный пользователь мог перемещаться по списку с помощью клавиш со стрелками (вверх / вниз).
<modal *ngIf="visible" [visible]="visible">
<material-dialog headered class="headered-dialog">
<div header>
<h1>List Demo</h1>
</div>
<form (ngSubmit)="onSubmit()" #heroForm="ngForm">
<div class="list-body form-control">
<ul>
<li *ngFor="let item of items; let i=index">
<div>{{item.name}}</div>
</li>
</ul>
</div>
</form>
</material-dialog>
</modal>
Ответ №1:
пакет: angular_components предоставляет MaterialListComponent
и FocusListDirective
, которые поддерживают навигацию вверх / вниз
https://dart-lang.github.io/angular_components/#/material_list
Вы можете использовать их вместе следующим образом
<material-list focusList>
<material-list-item *ngFor="let item of items; let i=index">
<div>{{item.name}}</div>
</material-list-item>
</material-list>
Никогда не пробовал, но вы также должны иметь возможность использовать FocusListDirective
для любого элемента.
<ul focusList>
<li *ngFor="let item of items; let i=index">
<div>{{item.name}}</div>
</li>
</ul>
Комментарии:
1. Это здорово, и я заставил его работать, за исключением двух проблем. Когда список теряет фокус, выделение выбранного элемента исчезает. Возможно, именно так работает этот элемент управления. Другое дело, что когда я перемещаюсь с помощью клавиатуры, я не получаю событие (триггер), которое я получаю, когда я нажимаю на элемент в списке. Вероятно, мне нужно другое событие, и я продолжу поиск этого.