How to GET HTML from API and Display In DOM using HMPL.js (fetch)?
antonmak1
Posted on July 22, 2024
Hello! In this article I would like to talk about how to GET HTML from API and Display In DOM using HMPL.js.
This method is suitable for any api, because This module is based on the Fetch API and almost completely copies the work with the vanilla solution.
Let's say if we take a route that returns HTML in response:
API route - http://localhost:8000/api/test
<span>123</span>
And, let’s say, there is a task in a div
with id
"wrapper" to display this HTML. To do this, you can connect the hmpl module via the script
tag and write the following code:
<div id="wrapper"></div>
<script src="https://unpkg.com/hmpl-js/dist/hmpl.min.js"></script>
<script>
const templateFn = hmpl.compile(
`<div>
{
{
"src":"http://localhost:8000/api/test"
}
}
</div>`
);
const wrapper = document.getElementById("wrapper");
const obj = templateFn();
wrapper.appendChild(obj.response);
</script>
In this code, thanks to hmpl markup, you can generate a DOM node that can be displayed in HTML. It is worth considering that this node will be updated automatically during the API request process.
If you need to add a request indicator, you can slightly expand the existing code:
<div id="wrapper"></div>
<script src="https://unpkg.com/hmpl-js/dist/hmpl.min.js"></script>
<script>
const templateFn = hmpl.compile(
`<div>
{
{
"src":"http://localhost:8000/api/test",
"on": {
"trigger": "loading",
"content": "<div>Loading...</div>",
}
}
}
</div>`
);
const wrapper = document.getElementById("wrapper");
const obj = templateFn();
wrapper.appendChild(obj.response);
</script>
In this example, the indicator will be triggered when the request is sent, but the response from the API has not yet arrived.
Posted on July 22, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 14, 2024
October 21, 2024