为了账号安全,请及时绑定邮箱和手机立即绑定

当我在 Angular 中单击它时,如何在导航中获取名称菜单

当我在 Angular 中单击它时,如何在导航中获取名称菜单

有只小跳蛙 2023-09-11 16:50:42
我的 Angular 项目有问题。我无法仅获取菜单的一个组件并将其放在导航上以显示单击了哪个菜单。这是我的header.component.html     <mat-nav-list>      <mat-list-item>        <a style="color: white;" *ngFor="let menuitem of menuItems.getMenuitem()">{{ menuitem.name }}</a>      </mat-list-item>     </mat-nav-list>这是我的header.component.tsimport { MediaMatcher } from '@angular/cdk/layout';import { Router } from '@angular/router';import {  ChangeDetectorRef,  Component,  NgZone,  OnDestroy,  ViewChild,  HostListener,  Directive,  AfterViewInit} from '@angular/core';import { MenuItems } from '../../../shared/menu-items/menu-items';@Component({  selector: 'app-header',  templateUrl: './header.component.html',  styleUrls: []})export class AppHeaderComponent implements OnDestroy, AfterViewInit {  mobileQuery: MediaQueryList;  private _mobileQueryListener: () => void;  constructor(    changeDetectorRef: ChangeDetectorRef,    media: MediaMatcher,    public menuItems: MenuItems  ) {    this.mobileQuery = media.matchMedia('(min-width: 768px)');    this._mobileQueryListener = () => changeDetectorRef.detectChanges();    this.mobileQuery.addListener(this._mobileQueryListener);  }  ngOnDestroy(): void {    this.mobileQuery.removeListener(this._mobileQueryListener);  }  ngAfterViewInit() {}}
查看完整描述

4 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

如何添加点击事件并在导航栏中对其做出反应:


 <mat-nav-list>

      <mat-list-item>

        <a style="color: white;" *ngFor="let menuitem of menuItems.getMenuitem()" (click)="menuItemClick(menuitem)">{{ menuitem.name }}</a>

      </mat-list-item>

     </mat-nav-list>


查看完整回答
反对 回复 2023-09-11
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

在 html 文件上添加点击事件(...是代码的一部分)


<a ... (click)="handleMenuClick(menuitem)"></a>


在你的头ts文件中添加方法


handleMenuClick (item) {

   alert(item.name)

 }


因此,在该函数内部获取值,并执行任何所需的任务以根据所选项目更改 UI,我刚刚添加了警报以显示当前项目


查看完整回答
反对 回复 2023-09-11
?
跃然一笑

TA贡献1826条经验 获得超6个赞

将 menuItemClick 方法添加到您的 menuItem 类中,此方法应将单击的项目作为参数,然后处理 html 中的项目单击事件


类似的东西


export class MenuItems {

  getMenuitem(): Menu[] {

   return MENUITEMS;

  }

  menuItemClick(MenuItem: Menu){

   // Do something

 }

}

在你的html中


 <mat-nav-list>

  <mat-list-item>

    <a style="color: white;" *ngFor="let 

       menuitem of menuItems.getMenuitem()" (click)="menuItems.menueItemClick(menuitem)">{{ menuitem.name }}</a>

  </mat-list-item>

 </mat-nav-list>


查看完整回答
反对 回复 2023-09-11
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

您需要在控制器文件中定义该方法



查看完整回答
反对 回复 2023-09-11
  • 4 回答
  • 0 关注
  • 132 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信