当我使用ng-click on md-list-item时,我不希望Angular Material添加md按钮

时间:2016-04-11 14:34:38

标签: angularjs angular-material

我需要这样的东西:

<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按钮,我会使用一个按钮,但在这里我只想在md-list-item上进行简单的工作。如果有必要使用不同的元素,请在内部创建<div>而不是按钮?我可以以某种方式阻止Angular Material像这样编译吗?

1 个答案:

答案 0 :(得分:1)

哎呀,看起来像不。

下面的

是该行为的源代码

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

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