You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
578 B
26 lines
578 B
5 years ago
|
<template>
|
||
|
<div>
|
||
|
<component v-bind:is="element.type" :options="element" ></component>
|
||
|
</div>
|
||
|
</template>
|
||
|
<script>
|
||
|
import Vue from 'vue'
|
||
|
|
||
|
const requireElement = require.context('./Elements', true, /\.vue$/);
|
||
|
requireElement.keys().forEach(fileName => {
|
||
|
// Replace ./ and .vue
|
||
|
const elementName = fileName.replace(/(\.\/|\.vue)/g, '')
|
||
|
Vue.component(elementName,
|
||
|
() => import(`./Elements/${elementName}.vue`)
|
||
|
)
|
||
|
});
|
||
|
|
||
|
export default {
|
||
|
props:{
|
||
|
element:{
|
||
|
type: Object,
|
||
|
required: true
|
||
|
}
|
||
|
},
|
||
|
}
|
||
|
</script>
|