是否可以将 cdkDrag 放入 mat-select 中?
Is it possible to put a cdkDrag inside a mat-select?
我有一个简单的 mat-select
元素:
<mat-form-field>
<mat-select placeholder="Favorite food">
<mat-option *ngFor="let food of foods" [value]="food.value">
{{food.viewValue}}
</mat-option>
</mat-select>
</mat-form-field>
在 TypeScript 中,foods
是:
foods: Food[] = [
{value: 'steak-0', viewValue: 'Steak'},
{value: 'pizza-1', viewValue: 'Pizza'},
{value: 'tacos-2', viewValue: 'Tacos'}
];
是否可以在 mat-select 元素中使用 cdkDrag
?我正在努力实现这样的目标:
<mat-form-field>
<mat-select placeholder="Favorite food">
<div cdkDropList>
<div *ngFor="let food of foods">
<span cdkDragHandle>$$$</span>
<mat-option [value]="food.value" cdkDrag>
{{food.viewValue}}
</mat-option>
</div>
</div>
</mat-select>
</mat-form-field>
但我无法拖动下拉项。请帮忙!
是的!有可能:
<mat-form-field>
<mat-select placeholder="Favorite food" multiple>
<div cdkDropList (cdkDropListDropped)="drop($event)">
<mat-option *ngFor="let food of foods" [value]="food.value" cdkDrag>
{{food.viewValue}}
<span cdkDragHandle>$$$</span>
</mat-option>
</div>
</mat-select>
</mat-form-field>
看起来诀窍是将您的 mat-option
包裹在 cdkDropList
div
中,这样放置事件 (cdkDropListDropped
) 就会可靠地触发。
Working StackBlitz.
我有一个简单的 mat-select
元素:
<mat-form-field>
<mat-select placeholder="Favorite food">
<mat-option *ngFor="let food of foods" [value]="food.value">
{{food.viewValue}}
</mat-option>
</mat-select>
</mat-form-field>
在 TypeScript 中,foods
是:
foods: Food[] = [
{value: 'steak-0', viewValue: 'Steak'},
{value: 'pizza-1', viewValue: 'Pizza'},
{value: 'tacos-2', viewValue: 'Tacos'}
];
是否可以在 mat-select 元素中使用 cdkDrag
?我正在努力实现这样的目标:
<mat-form-field>
<mat-select placeholder="Favorite food">
<div cdkDropList>
<div *ngFor="let food of foods">
<span cdkDragHandle>$$$</span>
<mat-option [value]="food.value" cdkDrag>
{{food.viewValue}}
</mat-option>
</div>
</div>
</mat-select>
</mat-form-field>
但我无法拖动下拉项。请帮忙!
是的!有可能:
<mat-form-field>
<mat-select placeholder="Favorite food" multiple>
<div cdkDropList (cdkDropListDropped)="drop($event)">
<mat-option *ngFor="let food of foods" [value]="food.value" cdkDrag>
{{food.viewValue}}
<span cdkDragHandle>$$$</span>
</mat-option>
</div>
</mat-select>
</mat-form-field>
看起来诀窍是将您的 mat-option
包裹在 cdkDropList
div
中,这样放置事件 (cdkDropListDropped
) 就会可靠地触发。
Working StackBlitz.