2017-10-12 39 views
2

我最近开始使用角材料,并且挣扎/不确定是否打开/关闭材料菜单......我在角材料文档网站上的例子中看到他们为菜单分配一个ID,然后将一个指令应用于用于切换菜单的按钮。例如[matMenuTriggerFor]="menu"如何打开/关闭角材料菜单

我该如何去编写一个这样做的指令?我不确定如何将对特定菜单的引用传递给一个指令,然后该指令使用该ID调用DOM元素上的toggle()方法?

下面的代码产生错误:

不能结合“matMenuTriggerFor”,因为它是不“按钮”的已知属性。

没有指令将“exportAs”设置为“matMenu”。
我的代码:

<li> 
    <button mat-icon-button [matMenuTriggerFor]="stockSystemMenu"> 
     <mat-icon class="sn-item"> 
      <i class="material-icons">archive</i> 
     </mat-icon> 
    </button> 
    <span class="sn-item" (click)="toggleMenu(stockSystemMenu)">Stok System</span> 

    <mat-menu #stockSystemMenu="matMenu"> 
     <button mat-menu-item> 
      <mat-icon> 
       <i class="material-icons">chevron_right</i> 
      </mat-icon> 
     <span>Service 1</span> 
     </button> 
    </mat-menu> 
</li> 
+0

你的代码?你试过的是什么? – Aravind

+0

@Aravind我不确定如何开始这一切。我不知何故需要传递一个dom元素的ID引用到这个指令,然后应该调用该dom元素的toggle()函数? – user2094257

+0

如果你可以详细说明我会帮你解决这个问题! – Aravind

回答

3

“您的代码是正确的,您不需要编写matMenuTriggerFor指令,它是API的一部分,请确保已将MatMenuModule,MatButtonModule和MatIconModule导入到您的应用程序模块中。” - 来自评论

6

有困惑,因为材料介绍我的理解是一个重大更改。请参见material 2 Changelog - Breaking Changes

与材料2.0.0 beta.12开始。使用mat而不是md-* ..似乎只有material.angular.io的一些文档用mat更新。具体来说,如果您点击查看源并查看md,我相信他们还没有用mat替换它。

因此要么更新到材料2.0.0-beta.12并使用mat-*或使用md-*