Load data on demand
With Ember Await you can load your data on-demand (eg. on button click). To do it, we need to use @defer=
argument and call the promise using run
property.
Remember! this.fetchPosts
needs to return a function
<Await @defer={{this.fetchPosts}} as |await|>
<button {{on "click" await.run}}>Fetch posts</button>
<await.Initial>
No posts are loaded yet
</await.Initial>
<await.Fulfilled as |posts|>
{{#each posts as |post|}}
{{post.title}}
{{/each}}
</await.Fulfilled>
</Await>
This way, the content from await.Initial
will be displayed until we click the button
and posts will load.
Last updated
Was this helpful?