angular 多 select 的自定义触发器
Custom trigger for angular multi-select
是否有具有自定义触发按钮的 angular 2+ 多 select 下拉菜单?
我正在寻找类似于旧 AngularJS "custom trigger element using transclusion" (here) 的东西...但是,ng-select、ng-multiselect-dropdown 和其他似乎没有提供这个。
我正在寻找带有示例代码的任何可行选项。
补充我的评论,组件变成
.html
<div ngbDropdown class="d-inline-block" autoClose="outside">
<button class="btn btn-outline-primary" id="dropdownBasic1" ngbDropdownToggle>
{{data.length?data.length+' checked':'Select'}}
</button>
<div ngbDropdownMenu aria-labelledby="dropdownBasic1">
<button class="dropdown-item" *ngFor="let option of options" (click)="check(option)">
<span *ngIf="option.checked">~ </span>{{option.label}}
</button>
</div>
</div>
.ts
import {Component,Input,Output,EventEmitter} from '@angular/core';
@Component({
selector: 'ngbd-dropdown-basic',
templateUrl: './dropdown-basic.html'
})
export class NgbdDropdownBasic {
@Input() options;
@Output() change = new EventEmitter<any[]>();
data:any[]=[];
check(option)
{
option.checked=!option.checked;
this.data=this.options.filter((x:any)=>x.checked).map(x=>
{
return {id:x.id,label:x.label}
})
this.change.emit(this.data);
}
}
您可以在自定义表单控件中轻松转换
是否有具有自定义触发按钮的 angular 2+ 多 select 下拉菜单?
我正在寻找类似于旧 AngularJS "custom trigger element using transclusion" (here) 的东西...但是,ng-select、ng-multiselect-dropdown 和其他似乎没有提供这个。
我正在寻找带有示例代码的任何可行选项。
补充我的评论,组件变成
.html
<div ngbDropdown class="d-inline-block" autoClose="outside">
<button class="btn btn-outline-primary" id="dropdownBasic1" ngbDropdownToggle>
{{data.length?data.length+' checked':'Select'}}
</button>
<div ngbDropdownMenu aria-labelledby="dropdownBasic1">
<button class="dropdown-item" *ngFor="let option of options" (click)="check(option)">
<span *ngIf="option.checked">~ </span>{{option.label}}
</button>
</div>
</div>
.ts
import {Component,Input,Output,EventEmitter} from '@angular/core';
@Component({
selector: 'ngbd-dropdown-basic',
templateUrl: './dropdown-basic.html'
})
export class NgbdDropdownBasic {
@Input() options;
@Output() change = new EventEmitter<any[]>();
data:any[]=[];
check(option)
{
option.checked=!option.checked;
this.data=this.options.filter((x:any)=>x.checked).map(x=>
{
return {id:x.id,label:x.label}
})
this.change.emit(this.data);
}
}
您可以在自定义表单控件中轻松转换