Angular的cdkMenu与ngModel或表单无法正常工作吗?模板的位置不再与按钮相邻。
创始人
2024-10-24 02:00:40
0

在 Angular 中,cdkMenu 与 ngModel 或表单一起使用时,确实可能会遇到一些问题,其中之一是模板的位置不再与按钮相邻。这是因为 cdkMenu 使用了 Overlay 功能,在 DOM 中创建了一个新的层叠层,导致模板的位置改变。

为了解决这个问题,可以使用 ngModel 或表单控件的事件来手动控制 cdkMenu 的打开和关闭。下面是一个示例:







  
import { Component, ViewChild } from '@angular/core';
import { NgModel } from '@angular/forms';
import { CdkMenuPanel, CdkMenuTrigger } from '@angular/cdk-experimental/menu';

@Component({
  selector: 'app-menu-example',
  templateUrl: './menu-example.component.html',
  styleUrls: ['./menu-example.component.css']
})
export class MenuExampleComponent {
  @ViewChild('menu') menu: CdkMenuPanel;
  @ViewChild('trigger') trigger: CdkMenuTrigger;
  @ViewChild(NgModel) ngModel: NgModel;

  isOpen = false;

  toggleMenu() {
    this.isOpen = !this.isOpen;
    if (this.isOpen) {
      // 打开 cdkMenu
      this.menu.open();
    } else {
      // 关闭 cdkMenu
      this.menu.close();
    }
  }

  selectItem(item: string) {
    // 处理选中的项
    console.log(item);
    // 关闭 cdkMenu
    this.menu.close();
  }
}

在上面的代码中,我们使用 ViewChild 从模板中获取了 cdkMenuPanelngModel。然后,我们在 toggleMenu 方法中根据 isOpen 的状态来手动打开或关闭 cdkMenu。在 selectItem 方法中,我们处理了选中项的逻辑,并手动关闭了 cdkMenu。

请注意,我们使用了 cdkMenuTriggerFor 属性来将 cdkMenu 绑定到按钮,并使用 ViewChild 获取了 cdkMenuPanelcdkMenuTrigger 的实例。

通过这种方式,你就可以手动控制 cdkMenu 的打开和关闭,并解决模板位置不再与按钮相邻的问题。

相关内容

热门资讯

wepoke ai辅助!wep... wepoke ai辅助!wepoke可以使用模拟器,wepok软件透明挂,攻略教程(有挂技巧)1、点...
wepoke辅助挂!wepok... wepoke辅助挂!wepoke有插件,wepOkE总是真的有挂,科技教程(有挂细节);玩家必备必赢...
玩家攻略推荐!天天斗牌大联盟麻... 玩家攻略推荐!天天斗牌大联盟麻将(透明挂)好像真的有挂(2021已更新)(哔哩哔哩)1、构建自己的天...
微扑克有辅助挂!微扑克大厅都是... 微扑克有辅助挂!微扑克大厅都是机器人,德州扑克微扑克俱乐部,系统教程(有挂机密)是一款可以让一直输的...
wepokeai机器人!wep... 这是一款非常优秀的WepOke ia辅助检测软件,能够让你了解到WepOke中牌率当中全部隐藏参数,...
揭秘一下!科乐麻将系统规律(透... 揭秘一下!科乐麻将系统规律(透视)原来是有挂(2026已更新)(哔哩哔哩)1、科乐麻将系统规律系统规...
微扑克有辅助挂!微扑克有后台控... 微扑克有辅助挂!微扑克有后台控制(透明挂)原来真的是有挂1、超多福利:超高返利,海量正版游戏,微扑克...
WePoKe外 挂!wopok... 1、WePoKe外 挂!wopoker有外 挂(透明挂)wEpOke(就是真的有挂);该软件可以轻松...
程序员教你!欢乐划水麻将是不是... 程序员教你!欢乐划水麻将是不是有猫腻(透视辅助)都是有挂(2024已更新)(哔哩哔哩)1、点击下载安...
微扑克系统发牌规律!微扑克有计... 1、微扑克系统发牌规律!微扑克有计算器,微扑克ai软件(确实真的有挂);代表性(透视辅助软件透明挂)...