3 ms·
Ok I think I figured out how to use a template with a slot in the spinner component: <div> <img v-if="this.status == 'pending'" src="https://
by spion 9y ago
Ok I think I figured out how to use a template with a slot in the spinner component:
<div>
<img v-if="this.status == 'pending'"
src="https://media.giphy.com/media/10kTz4r3ishQwU/giphy.gif" />
<slot v-if="this.status == 'success'" :list="this.data"></slot>
<div v-if="this.status == 'error'">{{this.error}}</div>
</div>
Then in the template the option line becomes
<option v-for="option in data.list" :value="option">{{option}}</option>
Not too bad. Guess I'll have to come up with a new example of what Vue templates can't do now!
- alevans4 9y agoYou nailed it :) You could also destructure the passed properties in the scoped slot (scope="{list}") so you could just use "option in list".
- djur 9y agoI wonder if the JS snippets in those attributes is syntax checked at build time or run time.
- alevans4 9y agoVue templates are compiled into render functions. They are checked when the template is compiled. If you are using a build process, then that would be at build time.