当我在 md-list-item 上使用 ng-click 时,我不想 Angular Material 添加 md-button

I don't want Angular Material to add a md-button when I use ng-click on md-list-item

我需要这样的东西:

<md-list-item ng-click="something()"> ... </md-list-item>

但是 Angular Material 将其编译为:

<md-list-item role="listitem" tabindex="-1" class="ng-scope md-clickable">
  <button class="md-no-style md-button" type="button" ng-transclude="" ng-click="something()">
    ...
  </button>
</md-list-item>

什么?您可能认为它很聪明,但它甚至没有记录在案!在我的例子中,它看起来很丑,而且效果很差,甚至无效 HTML (在按钮内创建按钮)。如果我想要一个具有所有样式等的 AM 按钮。我会使用一个按钮,但在这里我只想要一个简单的工作 ng-click on md-list-item。如果需要有不同的元素,那么请在里面创建一个 <div> 而不是按钮?我能以某种方式阻止 Angular Material 像这样编译它吗?

糟糕,看起来不像。

下面是该行为的源代码

if (tAttrs.ngClick || tAttrs.ngHref || tAttrs.href || tAttrs.uiSref || tAttrs.ngAttrUiSref) {
    wrapIn('button');
}

如果您创建自己的 ng-click,那么您也许可以绕过此逻辑。