我查了一下文件,但是我还没有幸运地到达我想要的目的地。
我有一张行表。在每行中我都有md-checkbox
,我可以选择哪个好。但我想提供的功能是,用户应该能够在两个选中的复选框之间选中多个复选框。例如,如果我选中顶部复选框,并选中底部复选框,则应选择它们之间的所有内容。这与gmail多重选择非常相似。
像这样。
这可能与angular2中的md-checkbox
有关吗?
答案 0 :(得分:1)
没有内置的支持,但你可以自己做。
@ViewChildren(MdCheckbox) checkboxes;
private _lastSelected;
private cbClick(index: number, event: any) {
if (this._lastSelected >= 0 && event.shiftKey) {
let cbs = this.checkboxes.toArray();
if (cbs[this._lastSelected].checked) {
let firstIndex = index >= this._lastSelected ? this._lastSelected : index;
let lastIndex = index >= this._lastSelected ? index : this._lastSelected;
cbs.slice(firstIndex, lastIndex + 1).forEach(c => c.checked = true);
}
}
this._lastSelected = index;
}
<div *ngFor="let o of options; let idx = index">
<br />
<md-checkbox (click)="cbClick(idx, $event)">{{ o }}</md-checkbox>
</div>
查看我的工作演示:http://plnkr.co/edit/IiBJpv18zv656ZrTFxAn?p=preview