Previously we were loading almost all the data in an afterModel hook, storing it temporarily in route properties, and then passing it to the controller in `setupController`. This does not follow Ember best-practices, and causes a number of unexpected behaviours. For example, Ember only calls `setupController` **when the model value changes**. Since `model()` was only returning the tag, that meant that category changes and `additionalTag` changes wouldn't always trigger a `setupController` call, and things would get into a very weird state. This is visible when using the 'loading-slider' component because the category navigation dropdown gets 'stuck' when switching categories. This commit moves all the data-fetching into `model()`. To make things cleaner, it also: - removes most uses of route-level variables - introduces async/await in the model() function - removes some unneeded `get()` usage - re-uses DiscoverySortableController for queryParam default handling - Removes override of `renderTemplate()` so that queryParams are correctly passed through to the controller - Removes some `transitionToRoute` hacks which were working around the queryParams issue - Switches to `@action` |
||
|---|---|---|
| .. | ||
| adapters | ||
| components | ||
| controllers | ||
| helpers | ||
| initializers | ||
| lib | ||
| mixins | ||
| models | ||
| pre-initializers | ||
| raw-views | ||
| routes | ||
| services | ||
| styles | ||
| templates | ||
| widgets | ||
| app.js | ||
| index.html | ||
| mapping-router.js | ||