Intento usar un filtro que creé como un archivo de arranque de Quasar,
export default ({ app }) => { app.config.globalProperties.$filters = { in_k: function (value, avoidSign, decimals=1) { value = Math.round(value / 1000 * Math.pow(10, decimals)) / Math.pow(10, decimals); return new Intl.NumberFormat("sv-SE", { style: "decimal", useGrouping: false, minimumFractionDigits: decimals, maximumFractionDigits: decimals, signDisplay: value !== 0 && !avoidSign ? "always" : "never", }).format(value) + "K"; }, } }que funciona bien en mi plantilla de página
{{ $filters.in_k(123456, true) }} // 123.5K
pero usarlo dentro del script de la página no funciona:
<q-table title="Treats" :rows="rows" :columns="columns" row-key="title" /> export default ({ name: 'PageIndex', setup() { const $store = useStore(); let columns = [ { name: 'name', required: true, label: 'Title', align: 'left', field: row => row.title, format: val => `${val}`, sortable: true }, { name: 'invested', align: 'right', label: 'Invested', field: row => (row.invested), format: val => `${$filters.in_k(val, true)}`, sortable: true }, ]; return { columns, rows: $store.state.generic_store.data } } })El error que me sale en la consola es este:
ReferenceError: $filters is not defined at Object.format (Index.vue?8b24:53)¿Alguien tiene una idea sobre cómo acceder al filtro en cada plantilla, preferiblemente incluso el {{ 123456 | in_k(verdadero) }} notación?
Creo que necesitas acceder a él así this.$filters