我正在尝试将自定义过滤器与Vuetify v-text-field控件一起使用。我在使用v-text-field控件的默认插槽获取显示值时遇到麻烦。它显然是从v-input派生的,它似乎可以正常工作。
这不起作用:
<v-text-field>
{{ purchasePrice | currency }}
</v-text-field>
这有效:
<v-input>
{{ purchasePrice | currency }}
</v-input>
我缺少模板插槽吗?我已经能够成功使用此控件上的“ append”和“ prepend”插槽,但不能成功使用“ default”插槽。有什么建议吗?
谢谢。
答案 0 :(得分:0)
我只能使其与命名的插槽一起使用:(此外,我正在重用此组件,因此它在内部接受了另一个插槽)
<template>
<v-layout>
<v-text-field
:type="type"
v-bind="
// https://vuejs.org/v2/guide/components-props.html#Disabling-Attribute-Inheritance
$attrs
"
@input="$emit('update', $event)"
v-on="
// https://vuejs.org/v2/guide/components-custom-events.html#Binding-Native-Events-to-Components
$listeners
"
>
<!-- ⬇️ HERE ⬇️ -->
<template v-slot:label>
<slot></slot>
</template>
</v-text-field>
</v-layout>
</template>
<script>
import { defaultMaterialTextFiledsProps } from '~/config/inputsStyle'
// See https://github.com/chrisvfritz/vue-enterprise-boilerplate/blob/master/src/components/_base-input-text.vue
export default {
// Disable automatic attribute inheritance, so that $attrs are
// passed to the <input>, even if it's not the root element.
// https://vuejs.org/v2/guide/components-props.html#Disabling-Attribute-Inheritance
inheritAttrs: false,
props: {
type: {
type: String,
default: 'text',
// Only allow types that essentially just render text boxes.
validator(value) {
return [
'email',
'number',
'password',
'search',
'tel',
'text',
'url'
].includes(value)
}
}
}
}
</script>