Angular 多 select 下拉菜单

Angular multi select dropdown

我想使用 bootstrap 在 angular 中设计一个多 select 下拉功能 4. 以下是下图。

以下是我目前的实现。

             <div class="form-group">
                      <label>Employee privilege</label>
                      <select id="employeePrivelege" data-style="btn-default" 
                      class="selectpicker form-control" 
                      formControlName="employeePriveleges"
                      multiple data-max-options="2">      
                        <option selected>Mustard</option>
                        <option selected>Barbecue</option>
                          </select>
                    </div> 

我有两个问题

  1. 如果我在 option
  2. 上添加 selected 属性,则不会 select 编辑元素

我知道这是因为我不使用 jQuery 并且我不想添加 JQuery 因为这在 Angular 中不推荐。

我的问题是

  1. 在 Angular 中使用或不使用 bootstrap 4
  2. 实现多下拉列表 UI 组件的最简单选项是什么

如果您正在使用 material 设计,那么这会对您有所帮助。 定义表单控件并在其中放置要显示的值 然后像这样定义下拉列表

<mat-select placeholder="Select Units" formControlName="unit">
                            <mat-option *ngFor="let unit ofUnit" [value]="unit.slug">
                              {{unit.unit_name}}
                            </mat-option>
                          </mat-select>

此代码笔有一个 Bootstrap 4 multiselect 与您所展示的非常相似。 link。当我将 select 添加到第一个时,例如:

<select class="custom-select" id="basic" multiple="multiple">
   <option value="cheese" selected>Cheese</option>
   <option value="tomatoes">Tomatoes</option>
   <option value="mozarella">Mozzarella</option>
   <option value="mushrooms">Mushrooms</option>
   <option value="pepperoni">Pepperoni</option>
   <option value="onions">Onions</option>
</select>

它按预期工作。

我试过你的代码,但 selected 属性对我来说工作正常。

我在 w3schools 创建了一个片段,表明它有效:link to snippet

看起来它没有被选中,因为选中的选项是灰色的,因为控件处于非活动状态。如果您添加另一个未选中的选项,您可以看到差异。我创建了另一个片段 here.

我的简化代码如下所示:

<select name="Sauces" multiple>
  <option value="Mustard">Mustard</option>
  <option selected value="Barbecue">Barbecue</option>
  <option value="Ketchup">Ketchup</option>
  <option selected value="Mayonaise">Mayonaise</option>
</select>

我还发现了一个非常有用的 Angular 组件:

https://www.npmjs.com/package/ng-multiselect-dropdown

我创建了一个 stackblitz,用您的数据演示该组件 here

我希望这对你有进一步的帮助。