问题
I have the following ion-range
component.
I set the minimum and maximum values to 0
and 120
respectively.
But also I want to restrict the movement of the thumb to a lower value than 120
(upper limit), for example: 85
but keeping the previous limits: 0
and 120
.
<ion-list>
<ion-item>
<ion-range min="0" max="120" pin="true" [(ngModel)]="myValue"></ion-range>
</ion-item>
</ion-list>
Example:
Any idea on how to achieve this?
Thanks!
回答1:
I had encountered this same issue and have a quick fix!
You can add the ionChange
event to the ion-range
component and call a function to update the range's current value. This will fire the function every time the range value is changed but only changes the current value when a logical statement is matched.
IMPORTANT: Interestingly, for single knob ranges, you will also need to set the debounce
attribute to a positive nonzero number (the default is 0). This tells how long Ionic should wait before firing the ionChange
event. When debounce
= 0, the value assigned to the variable that holds the value (i.e. myValue
) changes when a function is called, however, visual changes to the range position will not occur for only single knob ranges (it works fine with dual knob ranges). This is a bug the Ionic team should look into.
For example, add the ionChange
event and debounce
attribute in your .html
file:
<ion-range min="0" max="120" pin="true" [(ngModel)]="myValue" (ionChange)="restrictValue()" debounce="1"></ion-range>
and add a function, restrictValue()
in this case, in your .ts
file:
restrictValue () {
if (this.myValue >= 85) {
this.myValue = 85;
}
}
Hope this helps!
来源:https://stackoverflow.com/questions/48727039/how-to-set-a-maximum-value-for-ion-range