javascript - 在一页上有多个 mat-button-toggle-groups

标签 javascript css angular

我有几个按钮组,但它们似乎都共享相同的值。这似乎是因为它们都分配给了同一个#group,但如果我尝试将它们分配给当前组以外的任何其他组,我会收到错误消息。

<div class="options">
            <span class="option-left">
                <mat-button-toggle-group #group="matButtonToggleGroup" aria-label="Font Style" [(value)]="TableType" (change)="OnToggleChanged(group.value)">
                    <mat-button-toggle value="Trader">Trader</mat-button-toggle>
                    <mat-button-toggle value="Source">Source</mat-button-toggle>
                    <mat-button-toggle value="Shift">Shift</mat-button-toggle>
                    <mat-button-toggle value="Product">Product</mat-button-toggle>
                    <mat-button-toggle value="RiskLevel">Risk</mat-button-toggle>
                </mat-button-toggle-group>
            </span>
            <span>
                <mat-button-toggle-group #group="matButtonToggleGroup" aria-label="Font Style" [(value)]="TradeViewMode">
                    <mat-button-toggle (click)="ViewTrades()" value="Show">View Trades</mat-button-toggle>
                    <mat-button-toggle (click)="HideTrades()" value="Hide">Hide Trades</mat-button-toggle>
                </mat-button-toggle-group>
            </span>
            <span class="option-right">
                <mat-button-toggle-group #group="matButtonToggleGroup" aria-label="Font Style" [(value)]="NumberType" (change)="NumberTypeValueChanged(group.value)">
                    <mat-button-toggle value="percent">Percent</mat-button-toggle>
                    <mat-button-toggle value="currency">Dollars</mat-button-toggle>
                </mat-button-toggle-group>
            </span>
        </div>

此外,我对(更改)事件有疑问

public OnToggleChanged() {
        this.PieChartSource = this.CollectionByType[this.TableType];
        this.EndTime = this.GetEndTIme();

        if (this.TableType != 'Trader' && this.TableType != 'Source') {
            this.ViewTradesEnabled = false;
            this.TradeViewMode = 'Hide';
        }

        this.GetSlippage();
    }

在上面的函数中,this.TableType 是未定义的,我不理解,因为切换应该将它设置为选定的值。

最佳答案

我有一个工作 example here . 查看控制台日志以了解 group.value 的工作原理。

mat-button-toggle-group 的名称与值的变化无关。重要的是每个组都绑定(bind)到不同的变量。另外,给每个组自己的 id。他们不能都是“#group”

像这样:

<mat-button-toggle-group #group="matButtonToggleGroup" aria-label="Table Type" [(value)]="TableType" (change)="OnToggleChanged(group.value)">
  <mat-button-toggle value="Trader">Trader</mat-button-toggle>
  <mat-button-toggle value="Source">Source</mat-button-toggle>
  <mat-button-toggle value="Shift">Shift</mat-button-toggle>
  <mat-button-toggle value="Product">Product</mat-button-toggle>
  <mat-button-toggle value="RiskLevel">Risk</mat-button-toggle>
</mat-button-toggle-group>
<br>
<br>
<mat-button-toggle-group #group2="matButtonToggleGroup" aria-label="Trade View" [(value)]="TradeViewMode" (change)="OnToggleChanged(group2.value)">
  <mat-button-toggle (click)="ViewTrades()" value="Show">View Trades</mat-button-toggle>
  <mat-button-toggle (click)="HideTrades()" value="Hide">Hide Trades</mat-button-toggle>
</mat-button-toggle-group>
<br>
<br>
<mat-button-toggle-group #group3="matButtonToggleGroup" aria-label="Number Type" [(value)]="NumberType" (change)="OnToggleChanged(group3.value)">
  <mat-button-toggle value="percent">Percent</mat-button-toggle>
  <mat-button-toggle value="currency">Dollars</mat-button-toggle>
</mat-button-toggle-group>

<pre>
  TableType: {{TableType}}
  TradeViewMode: {{TradeViewMode}}
  NumberType: {{NumberType}}
</pre>

关于javascript - 在一页上有多个 mat-button-toggle-groups,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51509226/

相关文章:

javascript - Angular2 添加 HTML 到动态元素

html - 我的 CSS 导航栏不会向上或向下移动,并且在我尝试时中断

html - 修复 "sticky"导航栏位于屏幕顶部

CSS字体面不工作

angular - 如何在 Angular 2 中包含 JQuery 插件?

javascript - qTip2:当链接靠近浏览器的右侧时,如何使工具提示向左移动?

javascript - 从另一个 div 中的输入复选框中删除属性

javascript - 对象索引引用

css - Angular Material - Mat-Dialog - 更改背景模糊/变暗效果

javascript - 为什么我的 ngModal 值在我的 html select 中获取的是字符串值而不是 bool 值 true 或 false?