清除Angular 2 App

时间:2017-08-15 16:40:10

标签: javascript angular typescript radio-button angular-material2

我在我的Angular应用程序上设置了一个排序过滤器,它通过md-radio-group使用单选按钮,以便用户可以在数据的表格显示上选择首选的排序方法。单选按钮按预期工作。但是,我还有一个"恢复默认值"我想用来清除所有单选按钮选择并返回默认排序的按钮。到目前为止,我无法清除单选按钮。

这是我的视图代码:

    <filter-option name="Sort"
            placeholder="Select Sorting Option"
            [usePlaceholder]="!value"
            [visible]="sortFilters.enabled">
        <filter-label>{{value | capitalize}}</filter-label>
        <filter-menu>
            <md-radio-group class="mat-radio-label-content">
                <md-radio-button value="alphabetical" class="vert-radiobox-list" (click)="onSortClicked(value = 'alphabetical')">
                    Alphabetical
                </md-radio-button>
                <md-radio-button value="reverse alphabetical" class="vert-radiobox-list" (click)="onSortClicked(value = 'reverse alphabetical')">
                    Reverse Alphabetical
                </md-radio-button>
                <md-radio-button value="numeric ID" class="vert-radiobox-list" (click)="onSortClicked(value = 'numeric ID')">
                    Numeric ID
                </md-radio-button>
            </md-radio-group>
            <button md-button class="restore-button" (click)="clearSortingFilters()">Restore Defaults</button>
        </filter-menu>
    </filter-option>

在我的组件中,我有这个初始化过滤器:

sortFilters =
{
    enabled: true,
    value: false
};

这是附加到按钮的功能,用于清除排序过滤器:

clearSortingFilters()
{
    this.sendSort.emit(this.value = '');
}

现在,在上面的函数中,this.sendSort.emit(this.value = '')完成了清除筛选标签区域中显示的选择。但是如何清除md-radio-group单选按钮选项呢?

2 个答案:

答案 0 :(得分:3)

这是您应该修改代码以便工作的方式:

HTML

<md-radio-group class="mat-radio-label-content" [(ngModel)]="selectedValue">
     <md-radio-button value="alphabetical" class="vert-radiobox-list" (click)="onSortClicked(value = 'alphabetical')">
           Alphabetical
     </md-radio-button>
     <md-radio-button value="reverse alphabetical" class="vert-radiobox-list" (click)="onSortClicked(value = 'reverse alphabetical')">
           Reverse Alphabetical
     </md-radio-button>
     <md-radio-button value="numeric ID" class="vert-radiobox-list" (click)="onSortClicked(value = 'numeric ID')">
           Numeric ID
     </md-radio-button>
</md-radio-group>    
<button md-button class="restore-button" (click)="clearSortingFilters()">Restore Defaults</button>

TS

selectedValue: string;

clearSortingFilters(){
    this.selectedValue = null; // or false or ''
  }

工作plunkr here

答案 1 :(得分:0)

在我看来,您希望将NgModel添加到您的输入值。像这样:[(ngModel)] =&#34;反向字母&#34;。此外,您可能希望更改OnClick函数以更改&#34;反向字母&#34;的值。为假。