我需要这样的东西:
<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像这样编译吗?
答案 0 :(得分:1)
是该行为的源代码
if (tAttrs.ngClick || tAttrs.ngHref || tAttrs.href || tAttrs.uiSref || tAttrs.ngAttrUiSref) {
wrapIn('button');
}
如果您创建自己的ng-click,那么您可以绕过这个逻辑。