Angular 10中Mat-progress-bar始终显示100%的问题求助
解决Angular 10 Material进度条始终显示100%的问题
嘿,我之前也踩过这个坑!咱们一步步来排查解决:
最可能的原因:属性绑定方式错误
你在模板里写的value="40"只是设置了普通的HTML属性,而不是Angular组件的输入属性绑定。mat-progress-bar的value是数值类型的输入属性,必须用方括号[]来绑定,Angular才能正确识别并传递数值给组件。
修正模板代码
直接把模板改成这样即可:
<mat-progress-bar mode="determinate" [value]="40"></mat-progress-bar>
如果之后需要动态修改进度值,也可以先在组件类里定义变量:
export class TestComponent implements OnInit { progressValue = 40; // 定义进度值变量 constructor() { } ngOnInit(): void { } }
再在模板中绑定这个变量:
<mat-progress-bar mode="determinate" [value]="progressValue"></mat-progress-bar>
第二排查方向:样式冲突
如果修改绑定后问题依旧,检查你的test.component.scss或全局样式文件,有没有不小心写了强制覆盖进度条宽度的代码,比如:
.mat-progress-bar-fill::after { width: 100% !important; }
这类样式会强制进度条填满整个容器,删掉或调整它就能恢复正常。
额外确认:你的Material模块导入没问题
看了你提供的MaterialModule代码,你已经正确导入了MatProgressBarModule,而且其他Material组件都正常工作,这部分完全没问题,不用调整。
按上面的方法试一下,应该就能搞定这个进度条的问题啦!
内容的提问来源于stack exchange,提问作者Musaffar Patel
相关产品推荐
相关产品推荐

