VueJS 动态 属性 作为 HTML/VueMaterial 元素属性的值传递
VueJS dynamic property to be passed as value of HTML/VueMaterial element attributes
我在我的项目中使用 Vue 2.6.12 以及 Vue 和 Laravel 与 Webpack 混合用于资产管理。而且我对 VueJS 比较陌生。
现在我需要将动态 VueJS 属性 值作为值传递给现有的 HTML/VueMaterial 元素属性作为它的值,如下所示:
<md-icon md-src="{{iconPath}}{{iconName}}-icon-{{iconColor}}.svg">
我知道使用 VueJS 我们可以从 props 创建动态属性,但我更喜欢不更改属性名称并仍然传递 prop 值,这样当像上面这样的东西被编译时它变成:
<md-icon md-src="/assets/icons/document-tab-icon-green.svg">
完整的 Vue 图标组件MyIcon.vue如下:
<template>
<div>
<md-icon md-src="{{iconPath}}{{iconName}}-icon-{{iconColor}}.svg">
</div>
</template>
<script>
export default {
name: 'MyIcon',
props: {
iconPath: {type: String, default: '/assets/icons/'}
iconColor: {type: String, default: 'green'},
iconName: {type: String, default: 'document-tab'}
}
}
</script>
我在 {projectroot}/public/assets/icons
目录路径中确实有 svgs。
我怎样才能实现我提到的目标?
您可以尝试将 md-src
绑定到一个 属性 的 returns svg 完整路径,如下所示:
...
<md-icon :md-src="svgPath">
...
computed:{
svgPath(){
return `${this.iconPath}${this.iconName}-icon-${this.iconColor}.svg`
}
}
...
我在我的项目中使用 Vue 2.6.12 以及 Vue 和 Laravel 与 Webpack 混合用于资产管理。而且我对 VueJS 比较陌生。
现在我需要将动态 VueJS 属性 值作为值传递给现有的 HTML/VueMaterial 元素属性作为它的值,如下所示:
<md-icon md-src="{{iconPath}}{{iconName}}-icon-{{iconColor}}.svg">
我知道使用 VueJS 我们可以从 props 创建动态属性,但我更喜欢不更改属性名称并仍然传递 prop 值,这样当像上面这样的东西被编译时它变成:
<md-icon md-src="/assets/icons/document-tab-icon-green.svg">
完整的 Vue 图标组件MyIcon.vue如下:
<template>
<div>
<md-icon md-src="{{iconPath}}{{iconName}}-icon-{{iconColor}}.svg">
</div>
</template>
<script>
export default {
name: 'MyIcon',
props: {
iconPath: {type: String, default: '/assets/icons/'}
iconColor: {type: String, default: 'green'},
iconName: {type: String, default: 'document-tab'}
}
}
</script>
我在 {projectroot}/public/assets/icons
目录路径中确实有 svgs。
我怎样才能实现我提到的目标?
您可以尝试将 md-src
绑定到一个 属性 的 returns svg 完整路径,如下所示:
...
<md-icon :md-src="svgPath">
...
computed:{
svgPath(){
return `${this.iconPath}${this.iconName}-icon-${this.iconColor}.svg`
}
}
...