从在 ngFor 中动态创建的多个垫滑块获取值
Get values from multiple mat-sliders dynamically created within ngFor
我正在 Angular 中动态创建多个垫子滑块,如下所示:
<ng-container *ngFor="let parameter of parameterValues; let i = index;">
<mat-slider (input)="onInputChange($event)" min="1" max="{{ parameter.length }}" step="1" value="1" id="{{ 'myslider' + i }}"></mat-slider>
</ng-container>
当任何滑块位置发生变化时,我想触发一个事件,该事件随后调用另一个函数,该函数接收一个数组 'sliderValues',其中包含每个动态创建的 mat-slider 值。我正在尝试这样做:
onInputChange(event: MatSliderChange) {
for (let i = 0; i < this.results.parameterNames.length; i++) {
const theid = "myslider" + i;
var ele = document.getElementById(theid)
console.log((ele as HTMLInputElement).id + " is the id");
console.log((ele as HTMLInputElement).value + " is the value");
this.sliderValues.push((ele as HTMLInputElement).value);
}
//some function called here which accepts 'this.sliderValues' as a parameter
}
这目前不起作用;我无法访问滑块的值。在控制台中,我看到 'id' 正确报告,但 'value' 是 'undefined'。感谢任何帮助,如果需要,我愿意以完全不同的方式进行。
我找到了一种更简洁的方法。该值可以从:
event.value
ID 来自:
event.source._elementRef.nativeElement.id
'value' 和 'source' 都可以从 MatSliderChange 'event' 对象访问
我正在 Angular 中动态创建多个垫子滑块,如下所示:
<ng-container *ngFor="let parameter of parameterValues; let i = index;">
<mat-slider (input)="onInputChange($event)" min="1" max="{{ parameter.length }}" step="1" value="1" id="{{ 'myslider' + i }}"></mat-slider>
</ng-container>
当任何滑块位置发生变化时,我想触发一个事件,该事件随后调用另一个函数,该函数接收一个数组 'sliderValues',其中包含每个动态创建的 mat-slider 值。我正在尝试这样做:
onInputChange(event: MatSliderChange) {
for (let i = 0; i < this.results.parameterNames.length; i++) {
const theid = "myslider" + i;
var ele = document.getElementById(theid)
console.log((ele as HTMLInputElement).id + " is the id");
console.log((ele as HTMLInputElement).value + " is the value");
this.sliderValues.push((ele as HTMLInputElement).value);
}
//some function called here which accepts 'this.sliderValues' as a parameter
}
这目前不起作用;我无法访问滑块的值。在控制台中,我看到 'id' 正确报告,但 'value' 是 'undefined'。感谢任何帮助,如果需要,我愿意以完全不同的方式进行。
我找到了一种更简洁的方法。该值可以从:
event.value
ID 来自:
event.source._elementRef.nativeElement.id
'value' 和 'source' 都可以从 MatSliderChange 'event' 对象访问