コンポーネント名のリスト(APIサーバーへのAJAX呼び出しから来る)をどのように反復してコンポーネントとしてレンダリングし、関連するものを渡すことができますか(すなわち、それらのプロパティを動的にバインドする)。VueJS 2の動的コンポーネントを動的コンポーネントにバインドする方法
これまでコンポーネントを表すアイテムのJSONリストを繰り返し処理し、これらのコンポーネントを正常にレンダリングしました。ここでは、v-bind
を使用して各コンポーネントのプロパティをバインドします。
以下の例では、item-one
コンポーネントは、item1.jpg
値のimage
プロパティを受け取ります。 item-two
コンポーネントはプロパティを受け取りません。
<template>
<div v-for="item in items">
<component :is="Object.keys(item)[0]" :v-bind="???"></component>
</div>
</template>
<script>
import ItemOne from '../components/item-one'
import ItemTwo from '../components/item-two'
export default {
components: {
ItemOne,
ItemTwo
},
asyncData() {
return {
items: [
{ 'item-one': { 'image': 'item1.jpg' } },
{ 'item-two': { } }
]
}
}
}
</script>
私は:v-bind="Object.values(Object.keys(item)[0])"
を使用してみましたが、私は、レンダリングされた要素に属性v-bind="[object Object]"
を取得します。
その 'v-bind'。コロンはまだありません – thanksd
@thanksdは動作しません。 – Jurgen
'v-bind =" item [Object.keys(item)[0]] "'となります。おそらく 'items'の構造を変更するのに役立つでしょう。 – thanksd