通过变量名称在模板中使用自定义 vuetify 图标
Use custom vuetify icon in template by it name from variable
我正在尝试使用下一个模板在列表中呈现自定义 vuetify 图标:
<template v-for="item in items">
<v-list nav :key="item.name">
<v-list-item link :to="item.to">
<v-list-item-icon>
<v-icon color="white">{{$vuetify.icons.values[item.icon]}}</v-icon>
</v-list-item-icon>
<v-list-item-title>{{item.name}}</v-list-item-title>
</v-list-item>
</v-list>
</template>
脚本:
<script lang="ts">
...
export default class Menu extends Vue {
items: Array<any> = [
{
name: "Home",
to: "/Home",
icon: "test1"
},
{
name: "Contacts",
to: "/Contacts",
icon: 'test2'
}
]}
</script>
已在 vuetify.ts
中注册图标
Vue.use(Vuetify, {
icons: {
iconfont: "mdi",
},
values: {
test1: '...svg'
test2: '...svg'
}
});
我的第一个问题是,当我将自定义图标与 $vuetify.icons.test1 一起使用时,它工作正常。但是,如果我动态获取此值,我应该怎么做。第二个有什么方法可以将其用作普通图标,例如:
<v-icon>test1</v-icon>
自定义图标的模板语法假设图标路径是一个字符串。您可以使用字符串插值来定义动态图标。
<v-icon color="white">{{ `$vuetify.icons.${item.icon}` }}</v-icon>
关于第二个问题,自定义图标有一个shorthand:
<v-icon color="white">$test1</v-icon>
动态版本如下所示:
<v-icon color="white">{{ `$${item.icon}` }}</v-icon>
另外,请注意您不需要为自定义图标指定 values
。所有图标(内置和自定义)都被拉入一个 icons
对象。
我正在尝试使用下一个模板在列表中呈现自定义 vuetify 图标:
<template v-for="item in items">
<v-list nav :key="item.name">
<v-list-item link :to="item.to">
<v-list-item-icon>
<v-icon color="white">{{$vuetify.icons.values[item.icon]}}</v-icon>
</v-list-item-icon>
<v-list-item-title>{{item.name}}</v-list-item-title>
</v-list-item>
</v-list>
</template>
脚本:
<script lang="ts">
...
export default class Menu extends Vue {
items: Array<any> = [
{
name: "Home",
to: "/Home",
icon: "test1"
},
{
name: "Contacts",
to: "/Contacts",
icon: 'test2'
}
]}
</script>
已在 vuetify.ts
中注册图标Vue.use(Vuetify, {
icons: {
iconfont: "mdi",
},
values: {
test1: '...svg'
test2: '...svg'
}
});
我的第一个问题是,当我将自定义图标与 $vuetify.icons.test1 一起使用时,它工作正常。但是,如果我动态获取此值,我应该怎么做。第二个有什么方法可以将其用作普通图标,例如:
<v-icon>test1</v-icon>
自定义图标的模板语法假设图标路径是一个字符串。您可以使用字符串插值来定义动态图标。
<v-icon color="white">{{ `$vuetify.icons.${item.icon}` }}</v-icon>
关于第二个问题,自定义图标有一个shorthand:
<v-icon color="white">$test1</v-icon>
动态版本如下所示:
<v-icon color="white">{{ `$${item.icon}` }}</v-icon>
另外,请注意您不需要为自定义图标指定 values
。所有图标(内置和自定义)都被拉入一个 icons
对象。