Angular material 选中时滑动切换绑定不起作用
Angular material slide toggle binding on checked not working
看起来很简单,但我就是无法使滑动切换的 checked
绑定起作用。
(我正在使用 angular 9.1
和 material 9.2
。)
这是 html:
<mat-slide-toggle [checked]="isSlideChecked" (change)="toggleChanges($event)">isSlideChecked: {{isSlideChecked}}</mat-slide-toggle>
<p *ngFor="let e of toggleEvents">{{e}}</p>
这是 TS:
import { Component, OnInit } from '@angular/core';
import { MatSlideToggleChange } from '@angular/material/slide-toggle';
@Component({
selector: 'app-test-component',
templateUrl: './test-component.component.html',
styleUrls: ['./test-component.component.scss']
})
export class TestComponentComponent implements OnInit {
public isSlideChecked: boolean = false;
public toggleEvents: string[] = [];
constructor() { }
ngOnInit(): void {
}
toggleChanges($event: MatSlideToggleChange) {
this.toggleEvents.push("Toggle Event: " + $event.checked)
}
}
change
事件运行良好,$event.checked
始终设置正确。但是 checked
绑定不起作用,它总是停留在 false
.
在我放弃使用一个普通的复选框之前,我希望这里有人能帮助我。有什么建议吗?
这是 working stackblitz 的 link。
我不确定为什么,但是当我从 isSlideChecked
中删除 public
时,绑定开始起作用。我还从 toggleEvents
数组中删除了 public
。希望这有帮助。
material 滑动开关的 属性 选中仅用于输入绑定。因此,通过单击对切换所做的任何更改都不会在 [checked]
中输出。您将必须使用 (change)
事件来分配 event.checked
.
中的值
toggleChanges($event: MatSlideToggleChange) {
this.isSlideChecked = $event.checked;
}
您可以参考 API 文档了解更多详情,
https://material.angular.io/components/slide-toggle/api
看起来很简单,但我就是无法使滑动切换的 checked
绑定起作用。
(我正在使用 angular 9.1
和 material 9.2
。)
这是 html:
<mat-slide-toggle [checked]="isSlideChecked" (change)="toggleChanges($event)">isSlideChecked: {{isSlideChecked}}</mat-slide-toggle>
<p *ngFor="let e of toggleEvents">{{e}}</p>
这是 TS:
import { Component, OnInit } from '@angular/core';
import { MatSlideToggleChange } from '@angular/material/slide-toggle';
@Component({
selector: 'app-test-component',
templateUrl: './test-component.component.html',
styleUrls: ['./test-component.component.scss']
})
export class TestComponentComponent implements OnInit {
public isSlideChecked: boolean = false;
public toggleEvents: string[] = [];
constructor() { }
ngOnInit(): void {
}
toggleChanges($event: MatSlideToggleChange) {
this.toggleEvents.push("Toggle Event: " + $event.checked)
}
}
change
事件运行良好,$event.checked
始终设置正确。但是 checked
绑定不起作用,它总是停留在 false
.
在我放弃使用一个普通的复选框之前,我希望这里有人能帮助我。有什么建议吗?
这是 working stackblitz 的 link。
我不确定为什么,但是当我从 isSlideChecked
中删除 public
时,绑定开始起作用。我还从 toggleEvents
数组中删除了 public
。希望这有帮助。
material 滑动开关的 属性 选中仅用于输入绑定。因此,通过单击对切换所做的任何更改都不会在 [checked]
中输出。您将必须使用 (change)
事件来分配 event.checked
.
toggleChanges($event: MatSlideToggleChange) {
this.isSlideChecked = $event.checked;
}
您可以参考 API 文档了解更多详情, https://material.angular.io/components/slide-toggle/api