如何在我的自定义组件中使用变量数组键进行绑定?在以下示例中,如果将componenttype
设置为“默认”,则标题必须为“默认设置标题1”,如果将componenttype
设置为“访客”,则标题必须为“标题设置为标题1”等。试图以几种方式对它进行插值,但到目前为止没有任何效果。有提示吗?
<my-component
v-for="item in items"
:id="item.id"
:title="item['componenttype'].title" <-- how to interpolate here?
>
</my-component>
...
data() {
return {
componenttype: 'default',
items: [
{
1: {
default: {
title: 'Title 1 for default settings',
},
guest: {
title: 'Title 1 for guest settings'
}
},
2: {
default: {
title: 'Title 2 for default settings',
},
guest: {
title: 'Title 2 for guest settings'
}
},
}
]
}
}
...
答案 0 :(得分:2)
您的数组当前仅包含一个对象,带有多个嵌套对象。应该是:
items: [
{
default: {
title: 'Title 1 for default settings',
},
guest: {
title: 'Title 1 for guest settings'
}
},
{
default: {
title: 'Title 2 for default settings',
},
guest: {
title: 'Title 2 for guest settings'
}
}
]
使用以下方法应该可以:
<my-component v-for="item in items"
:title="item[componenttype].title"
/>
答案 1 :(得分:1)
您通过执行componenttype
将:title="item['componenttype'].title"
制成字符串。
只需:title="item[componenttype].title"
还要检查您的数组语法,那里可能有一些错误