Skip to content

Formato

Formato: default v-model: 50

v-model siempre emite numeros: 50 (tipo: number)

Formato de valores

La propiedad format permite formatear los valores que muestra el slider (tooltips, .get()):

vue
<Slider
    v-model="value"
    :range="{ min: 0, max: 100 }"
    :tooltips="true"
    :format="{
        to: (v) => '$' + Number(v).toFixed(2),
        from: (v) => Number(String(v).replace('$', ''))
    }"
/>

Funciones to y from

FuncionUsoEntradaSalida
toFormatea para mostrarNumeroString formateado
fromParsea de vueltaString formateado o numero como stringNumero

WARNING

La funcion from puede recibir tanto strings formateados (ej: "$50.00") como numeros planos en formato string (ej: "50"). Asegurate de que tu funcion from maneje ambos casos.

Ejemplo: Moneda

js
format: {
    to: (v) => '$' + Number(v).toFixed(2),
    from: (v) => Number(String(v).replace('$', ''))
}

Ejemplo: Porcentaje

js
format: {
    to: (v) => Number(v).toFixed(0) + '%',
    from: (v) => Number(String(v).replace('%', ''))
}

Ejemplo: Tiempo

js
format: {
    to: (v) => {
        const h = Math.floor(v);
        const m = Math.round((v - h) * 60);
        return h + ':' + String(m).padStart(2, '0');
    },
    from: (v) => {
        const s = String(v);
        if (!s.includes(':')) return Number(s);
        const [h, m] = s.split(':').map(Number);
        return h + m / 60;
    }
}

v-model y formato

::: important El v-model siempre emite valores numericos crudos, independientemente del formato configurado:

js
// Con format: { to: v => '$' + v.toFixed(2), ... }
// v-model emite: 50 (numero)
// get() retorna: "$50.00" (string formateado)
// get(true) retorna: 50 (numero)

:::

Distribuido bajo la licencia MIT.