带有辅助按钮的mat-nav-list

Roe*_*oel 3 angular-material angular-material2 angular-material-5

我们如何在mat-nav-list内正确添加辅助按钮?

这是我的示例:

<mat-nav-list>
  <h3 matSubheader>This is the listview</h3>
    <a mat-list-item [routerLink]="['/detail']">
        <span matLine>Title</span>
        <button mat-icon-button (click)="onAdd()">
        <mat-icon>add</mat-icon>
    </button>
        <button mat-icon-button (click)="onRemove()">
        <mat-icon>delete</mat-icon>
    </button>
    </a>
</mat-nav-list>
Run Code Online (Sandbox Code Playgroud)

在这段代码中,我希望onAdd()or onRemove()可以单独执行,但是页面随后会导航。

工作演示

Edr*_*ric 5

在函数中,您可以添加参数($event)并调用Event.preventDefault,以防止发生默认操作(在这种情况下,链接到其他链接)Event.stopImmediatePropagation

以下是一些示例代码:

<mat-nav-list>
    <h3 matSubheader>This is the listview</h3>
    <a mat-list-item [routerLink]="['/detail']">
        <span matLine>Title</span>
        <button mat-icon-button (click)="onAdd($event)">
            <mat-icon>add</mat-icon>
        </button>
        <button mat-icon-button (click)="onRemove($event)">
            <mat-icon>delete</mat-icon>
        </button>
    </a>
</mat-nav-list>
Run Code Online (Sandbox Code Playgroud)
onAdd(event: Event) {
    event.preventDefault();
    // EDIT: Looks like you also have to include Event#stopImmediatePropogation as well
    event.stopImmediatePropagation();
    // ...
}
onRemove(event: Event) {
    event.preventDefault();
    // EDIT: Looks like you also have to include Event#stopImmediatePropagation as well
    event.stopImmediatePropagation();
    // ...
}
Run Code Online (Sandbox Code Playgroud)