【问题标题】:Angular 2 Material Design Multi-select Drop-down with Hierarchical Indentation带有分层缩进的Angular 2 Material Design多选下拉菜单
【发布时间】:2017-06-23 16:18:10
【问题描述】:

我正在为 Angular 2 Material Design 应用程序中的多选下拉菜单创建自定义视图。该要求要求对下拉菜单中显示的选项进行分层缩进,如下面的屏幕截图所示。

基本上,我收到的数据集长度可以是 2 位、3 位或 4 位。我需要根据数据字段的长度应用缩进。

我尝试了多种选择,但到目前为止我一直无法达到这个目的。我所做的最新代码尝试具有以下类型的代码 sn-p:

<md-select multiple placeholder="Data" [(ngModel)]="selecteddatas" (ngModelChange)="onChange($event)">
            <md-option *ngFor="let data of datas" [value]="data.value">
                <div *ngIf="{{data.viewValue.length}}==={{2}}">{{ data.viewValue }}</div>
                <div *ngIf="{{data.viewValue.length}}==={{3}}">&nbsp;&nbsp;{{ data.viewValue }}</div>
                <div *ngIf="{{data.viewValue.length}}==={{4}}">&nbsp;&nbsp;&nbsp;&nbsp;{{ data.viewValue }}</div>
            </md-option>
        </md-select>    

有人可以指导我有关实现此目的的正确方法,或者是否有可用于 Angular 2 Material Design 的组件可用于此目的?

提前致谢。

【问题讨论】:

  • 您可能想要添加一些 CSS 填充。

标签: angular material-design angular-material2


【解决方案1】:

您的屏幕截图带有复选框,而不是 selectoption,因此您可能希望使用 md-checkbox 代替。至于*ngIf 检查,您不需要为此使用插值。

使用&amp;nbsp; 缩进不是最好的主意,正如您在demo 中看到的那样,它缩进数字,而不是复选框,因此采用@cgatian 建议的css 方法会是更好的选择.

<div *ngFor="let item of filteredList">
  <div [ngClass]="{'one-indent': item.number.length == 2, 
                   'two-indent': item.number.length == 3,
                   'three-indent': item.number.length == 4 }">
    <md-checkbox [checked]="item.value">
      {{ item.number }}
    </md-checkbox>
  </div>
</div>

css:

.one-indent{
  margin-left: 5px;
}

.two-indent{
  margin-left: 15px;
}

.three-indent{
  margin-left: 25px;
}

【讨论】:

  • 谢谢尼哈尔!该演示看起来几乎就像我需要实现的方式。我会尝试这个解决方案,希望它能按我的预期工作。
  • 嘿 Nehul,演示看起来非常不错。但是,我发现了一个问题。我需要这种布局在下拉菜单中可用,即选择选项。是否可以在md-select 控件中使用这种md-checkbox 布局?
  • 在演示中,我添加了一个带有复选框的 md-select。
  • 这太棒了内哈尔!看起来真的很不错。我收到了另一个请求。我需要选择下拉菜单进行多选。当我尝试为 &lt;md-select multiple&gt; 添加 Angular 2 选项时,它不起作用。您知道是否有其他方法可以实现多选下拉菜单的目的?
  • 在演示中添加了多选
猜你喜欢
  • 2019-07-22
  • 1970-01-01
  • 1970-01-01
  • 2015-08-14
  • 2019-09-08
  • 1970-01-01
  • 2019-02-28
  • 1970-01-01
  • 2019-01-28
相关资源
最近更新 更多