약간의 로딩 구성 요소가 있습니다.이 구성 요소의 기본 텍스트는 '로드 중 ...'입니다. 슬롯에 대한 좋은 후보, 그래서 난 내 템플릿으로 이런 일이 : 나, 예를 들어와 로딩 메시지를 변경할 수 있습니다슬롯 내용이 null 또는 비어 있는지 확인
<p class="loading"><i class="fa fa-spinner fa-spin"></i><slot>Loading...</slot></p>
<loading>Searching...</loading>
. 하지만 슬롯 내용이 제공되지 않는 경우 기본 메시지를 표시하는 것뿐만 아니라 슬롯 내용이 null 또는 비어있는 경우에도 내가 원하는 동작이 있습니다. 현재 내가 할 경우 예 : <loading>{{loadingMessage}}</loading>
이고 loadingMessage가 null이면 텍스트가 표시되지 않습니다 (기본 텍스트를 표시 할 위치). 따라서 이상적으로는 this.$slots.default
을 테스트해야합니다. 이것은 내용이 전달되었는지 여부를 알려주지 만 비어 있는지 여부를 어떻게 찾습니까? this.$slots.default.text
은 정의되지 않은 값을 반환합니다.
'$ slots.default.text'는 항상 정의되지 않은 문제입니다. 다음은 jsfiddle입니다 : https://jsfiddle.net/JohnMoore/rmafyz2x/2/ –
잘못된,'$ slots.default'는 배열이므로 필요한 것은'$ slots.default [0] .text'입니다 :) – Kano
예, 그게 내가 찾고 있었던 대답입니다. '$ slots.default [0] .text'를 테스트 할 수 있다면 원하는 것을 얻을 수 있습니다. –