如何以编程方式更改md-menu的x-position属性?

时间:2017-04-07 18:40:06

标签: angular angular-material2

md-menu具有x-position =“before | after”属性。我想动态更改属性。到目前为止,我已经尝试了

<md-menu [attr.x-position]="isLeftToRightLanguage()? 'after': 'before'" ... >

那不起作用(没有错误)。我也试过没有方括号,这让我在浏览器控制台中出现了MdMenuInvalidPositionX错误。

<md-menu x-position="isLeftToRightLanguage()? 'after': 'before'" ... >

PS:isLeftToRightLanguage()是组件中返回布尔值的方法。

1 个答案:

答案 0 :(得分:0)

你应该使用mdMenuTriggerFor属性,如下所示

<button md-icon-button [mdMenuTriggerFor]="menu" (click)="clicked($event)">
  <md-icon>more_vert</md-icon>
</button>
<md-menu #menu="mdMenu">
  <button md-menu-item>
  <span>Redial</span>
  </button>
  <button md-menu-item disabled>
  <span>Check voicemail</span>
  </button>
  <button md-menu-item>
  <span>Disable alerts</span>
  </button>
</md-menu>

或者您也可以使用positionXpositionY来处理事件位置,如下所示,

clicked(event){
     console.log(event);
  }

您应该使用event.screenXevent.screenY来获取点击的X和Y位置

<强> LIVE DEMO