조건이 충족되는 경우에만 슬롯의 폴백 콘텐츠 사용
아래에 설명하려는 방법을 알고 싶습니다.
슬롯이 있는 컴포넌트가 있고 폴백 콘텐츠가 정의되어 있다고 가정합니다.
이 컴포넌트를 다른 곳에서 사용할 때 다음과 같은 동작을 하고 싶습니다.
<TheComponent>
<template v-slot:name="{ data }">
<fallback v-if="condition(data)"/>
</template>
</TheComponent>
내 생각엔fallback
태그(또는 유사한 것)가 존재하지 않습니다(적어도 찾지 못했습니다).그래서 제가 잘못된 생각을 하고 있는 것 같습니다만, 제 문제에 대한 해결책을 찾을 수 없습니다.
중요한 건 내가 이 모든 걸 바꿀 수 없다는 거야TheComponent
외부 라이브러리에서 제공되기 때문에 콘텐츠를 다시 만들지 않습니다.
만약 그것이 도움이 된다면, 사실, 나는 Vuetify에서 행이 확장되는 것을 막기 위해 확장 버튼을 숨기려고 한다.data-table
행의 확장 부분에 표시할 내용이 있는지 여부에 따라 달라집니다.그래서 저는 다음과 같은 행동을 하고 싶습니다.
<v-data-table :items="items" show-expand ...>
<template v-slot:item.data-table-expand="{ item }">
<!-- Here I want the default behavior only if my item respects some condition -->
<fallback v-if="condition(item)"/>
<!-- Otherwise, I don't want to display the button that expands the row -->
</template>
</v-data-table>
잘 부탁드립니다.
꽤 많은 "검색"을 한 후로는 불가능할 것 같아요.IMHO는 Vuetify가 생성하는 기본 슬롯콘텐츠를 복제하여 고객님의 조건에 맞게 배치하는 것이 가장 좋습니다.v-if="item.description"
이 예에서는, 다음과 같습니다.
<v-data-table :headers="headers" :items="people" show-expand>
<template v-slot:expanded-item="{ item, headers }">
<td :colspan="headers.length">{{ item.description }}</td>
</template>
<template v-slot:item.data-table-expand="{ item, isExpanded, expand }">
<v-icon
v-if="item.description"
:class="['v-data-table__expand-icon', { 'v-data-table__expand-icon--active': isExpanded }]"
@click.stop="expand(!isExpanded)"
>$expand</v-icon>
</template>
</v-data-table>
이 솔루션은 깨지기 쉽고 Vuetify가 무언가를 바꿀 때마다 고장날 수 있다는 것은 알지만, 지금은 더 나은 해결책이 없다고 생각합니다.
언급URL : https://stackoverflow.com/questions/59379228/use-fallback-content-of-slot-only-if-condition-is-met
'programing' 카테고리의 다른 글
Java에서 메서드의 기본 범위는 무엇입니까? (0) | 2022.08.09 |
---|---|
Vue 및 Bootstrap 4에 행당 3장의 카드를 표시하는 방법 (0) | 2022.08.09 |
strdup() - C에서 무엇을 합니까? (0) | 2022.08.09 |
JavaBeans가 사용되는 장소? (0) | 2022.08.09 |
javac 옵션: 지정된 디렉토리 아래에 있는 모든 Java 파일을 재귀적으로 컴파일합니다. (0) | 2022.08.09 |