当我在 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,那么您也许可以绕过此逻辑。
我需要这样的东西:
<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,那么您也许可以绕过此逻辑。