Angular 2 Material Design多选下拉层次结构父选择状态

时间:2017-07-01 00:48:23

标签: angular material-design angular-material2

我正在使用Material Design在Angular 2中创建一个多选下拉列表。数据元素中存在层次结构,我需要实现类似于典型树结构的父子选择逻辑,其中在选择父节点时,所有子节点都被选中并取消选择父节点,取消选择所有子节点。那部分对我来说很好。

但是,当选择部分子项列表时,我在显示父项状态时遇到问题。在那种情况下,我需要在父复选框中显示" - "标志而不是空。我的实现的当前状态显示在快照中,其中父复选框显示为空。

enter image description here

相反,我需要它来展示这样的东西:

enter image description here

到目前为止我对HTML的代码如下所示:

<md-select multiple placeholder="Data" class="card-dropdown" [(ngModel)]="selectedDatas" (ngModelChange)="onChange($event)">
            <ng-container *ngFor="let data of datas; let i=index">
                <md-option [value]="data.modified_data" [ngClass]="'one-indent'">{{ data.modified_data + " - " + data.description }}</md-option>
                <ng-container *ngFor="let data of datas[i]?.children; let j=index">
                    <md-option [value]="data.modified_data" [ngClass]="'two-indent'">{{ data.modified_data + " - " + data.description }}</md-option>
                    <ng-container *ngFor="let data of datas[i]?.children[j]?.children">
                        <md-option [value]="data.modified_data" [ngClass]="'three-indent'">{{ data.modified_data + " - " + data.description }}</md-option>
                    </ng-container>
                </ng-container>
            </ng-container>
        </md-select>

有人可以指导我解决这个问题的正确方法吗?

提前致谢。

0 个答案:

没有答案