@muriel.schmidt
To launch a modal from a URL change in Ember.js, you can use the beforeModel
hook in your route to check for a specific query parameter or segment in the URL and trigger the modal display accordingly. Here is an example of how you can achieve this:
First, define a route where you want to show the modal:
1 2 3 4 5 6 7 8 9 10 11 |
// app/routes/example-route.js import Route from '@ember/routing/route'; export default class ExampleRoute extends Route { beforeModel(transition) { if (transition.to.queryParams.showModal) { this.controllerFor('example-modal').send('showModal'); } } } |
Next, create a controller for the modal that will handle showing and hiding the modal:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// app/controllers/example-modal.js import Controller from '@ember/controller'; export default class ExampleModalController extends Controller { isModalVisible = false; actions: { showModal() { this.set('isModalVisible', true); }, hideModal() { this.set('isModalVisible', false); } } } |
Finally, add a component for your modal in your template:
1 2 3 4 5 6 7 |
<!-- app/templates/components/example-modal.hbs --> {{#if this.isModalVisible}} <div class="modal"> <!-- modal content here --> </div> {{/if}} |
Now, when the URL changes and includes a query parameter showModal=true
, the modal will be displayed automatically in your Ember application. Don't forget to customize the modal component and add CSS styles to make it look good in your application.