Having trouble getting help?
Contact Support
Contact Support
Load content through post in Vue Accordion component
11 Jun 20245 minutes to read
Accordion supports to load external contents through AJAX
library. Refer the below steps.
-
Import the
Ajax
module fromej2-base
and initialize with URL path. -
Get data from the Ajax Success event to initialize Accordion with retrieved external path data.
<template>
<div id="app">
<div id="acrdnContnet1" style="display:none">
<ul style="margin : 0px;padding:0px 16px; list-style-type: none">
<li>Testing</li>
<li>Development</li>
</ul>
</div>
<div id="acrdnContnet2" style="display:none">
<ul style="margin : 0px;padding:0px 16px; list-style-type: none">
<li>Mobile</li>
<li>Web</li>
</ul>
</div>
<ejs-accordion ref="acrdnInstance">
<e-accordionitems>
<e-accordionitem header='Department' content='#acrdnContnet1'></e-accordionitem>
<e-accordionitem header='Platform' content='#acrdnContnet2'></e-accordionitem>
<e-accordionitem header='Employee Details'></e-accordionitem>
</e-accordionitems>
</ejs-accordion>
</div>
</template>
<script setup>
import { AccordionComponent as EjsAccordion, AccordionItemDirective as EAccordionitem, AccordionItemsDirective as EAccordionitems } from '@syncfusion/ej2-vue-navigations';
import { Ajax } from '@syncfusion/ej2-base';
import { ref } from 'vue';
const acrdnInstance = ref(null);
const ajax = new Ajax('./Ajax.html', 'GET', true);
ajax.send().then();
ajax.onSuccess = (data) => {
var obj = acrdnInstance.value.ej2Instances;
obj.items[2].content = data;
obj.refresh();
}
</script>
<style>
@import "../node_modules/@syncfusion/ej2-base/styles/material.css";
@import "../node_modules/@syncfusion/ej2-vue-navigations/styles/material.css";
div#headername {
margin-left: 100px;
}
</style>
<template>
<div id="app">
<div id="acrdnContnet1" style="display:none">
<ul style="margin : 0px;padding:0px 16px; list-style-type: none">
<li>Testing</li>
<li>Development</li>
</ul>
</div>
<div id="acrdnContnet2" style="display:none">
<ul style="margin : 0px;padding:0px 16px; list-style-type: none">
<li>Mobile</li>
<li>Web</li>
</ul>
</div>
<ejs-accordion ref="acrdnInstance">
<e-accordionitems>
<e-accordionitem header='Department' content='#acrdnContnet1'></e-accordionitem>
<e-accordionitem header='Platform' content='#acrdnContnet2'></e-accordionitem>
<e-accordionitem header='Employee Details'></e-accordionitem>
</e-accordionitems>
</ejs-accordion>
</div>
</template>
<script>
import { AccordionComponent, AccordionItemDirective, AccordionItemsDirective } from "@syncfusion/ej2-vue-navigations";
import { Ajax } from '@syncfusion/ej2-base';
export default {
name: "App",
components: {
"ejs-accordion": AccordionComponent,
"e-accordionitems": AccordionItemsDirective,
"e-accordionitem": AccordionItemDirective
},
data() {
let ajax = new Ajax('./Ajax.html', 'GET', true);
ajax.send().then();
ajax.onSuccess = (data) => {
var obj = this.$refs.acrdnInstance.ej2Instances
obj.items[2].content = data;
obj.refresh();
}
}
}
</script>
<style>
@import "../node_modules/@syncfusion/ej2-base/styles/material.css";
@import "../node_modules/@syncfusion/ej2-vue-navigations/styles/material.css";
div#headername {
margin-left: 100px;
}
</style>