在选项中选择嵌套标签可防止调用方法

时间:2019-12-23 18:51:54

标签: html angular bootstrap-material-design

enter image description here

单击带有选项的任何位置时,我都试图调用方法。

当您单击选项中的任何嵌套标签时,选择托盘将消失而无需调用该方法。

如果选择任何空白或未嵌套的任何文本,则将调用该方法。

<mdb-auto-completer 
    #completerBillTo
    #auto="mdbAutoCompleter"
    textNoResults="I have found no results :("
    [appendToBody]="true">
        <mdb-option 
            *ngFor="let billTo of resultsBillTo | async"
            [value]="billTo.name"
            (click)="updateAccountInfo( billTo, _accountService.accountFormGroup)">
                <small><strong> Id: {{ billTo.id }} </strong></small>
                {{ billTo.name }}
                <small>Value: {{ billTo.value }}</small>
        </mdb-option>
</mdb-auto-completer>

我尝试创建一个覆盖div并将其放置在所有元素的前面,但是单击div不会在单击时调用任何内容。

1 个答案:

答案 0 :(得分:0)

docs中,mdbAutoCompleter有一个select事件。选择一个选项后,事件将触发。

<mdb-auto-completer 
    #completerBillTo
    #auto="mdbAutoCompleter"
    textNoResults="I have found no results :("
    [appendToBody]="true"
    (select)="updateAccountInfo($event)"
>
    <mdb-option 
        *ngFor="let billTo of resultsBillTo | async"
        [value]="billTo"
    >
        <small><strong> Id: {{ billTo.id }} </strong></small>
        {{ billTo.name }}
        <small>Value: {{ billTo.value }}</small>
    </mdb-option>
</mdb-auto-completer>

如果只是在选择标签时,可以使用CSS修复此问题:

<mdb-option class="parent-class">
.parent-class {
  small, strong {
    pointer-events: none;
  }
}

这将删除smallstrong元素的点击事件。