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