【问题标题】:How do I intercept the clicked option?如何拦截单击的选项?
【发布时间】:2019-05-02 17:24:59
【问题描述】:

我正在使用 Angular 6 开发一个 Web 应用程序。我在这个项目中使用 bootstrap-select 库来实现动态组合框。我不太了解图书馆,但是 我需要一种方法来拦截用户单击选项元素。例如,在这段代码中(使用库):

<select class="form-control selectpicker"
        data-live-search="true"
>
<option *ngFor="let option of options" [value]="option.value" 
[selected]="selectedOption == option">{{option.label}}</option>
</select>

我希望用户在单击选项菜单项时启动拦截当前&lt;option&gt; 名称的方法。 经典的(click)="method(currentOption)" 事件不适用于&lt;option&gt; 元素。我怎么才能得到它?谢谢!

【问题讨论】:

    标签: html angular twitter-bootstrap-3 html-select bootstrap-select


    【解决方案1】:

    使用(change)="yourMethod()"[(ngModel)]="selectedOption"。您必须在组件类上定义一个名为 selectedOption 的属性:

    <select 
      class="form-control selectpicker"
      data-live-search="true"
      (change)="onChange($event)"
      [(ngModel)]="selectedOption">
      <option 
        *ngFor="let option of options" 
        [value]="option.value" 
        [selected]="selectedOption == option">
        {{option.label}}
      </option>
    </select>
    

    这里有一个Working Sample StackBlitz 供您参考。

    【讨论】:

    • 好的。但是如何在方法中传递与特定对象相关的数据呢?
    • 您可以简单地将其绑定到ngModel 指令。我已经更新了答案以及 Sample StackBlitz。 :)
    • @claudioz,这回答了你的问题吗?
    猜你喜欢
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多