Hi all.
We have a route module with subroutes (like the App
class, it declares the configureRouter
method). This has worked fine for months, but now we need to add a user profile validation that blocks that module, showing a “403 Forbidden” error message of sorts instead of the actual page.
We typically use a PageError
component that renders the error message and hide all other page elements behind a <template if.bind="!pageError">
element, but if we do that in this route’s view, Aurelia throws an error that says: “There was no router-view found in the view for ./service/service-panel.”
For the time being I’m using show.bind
instead of if.bind
to hide the router-view
, but that still instantiates the subroutes, which might do things that shouldn’t be done in their activate
/ attached
/ detached
methods.
We don’t want to replicate the user profile validation on every subroute module. Instead, it would be much better if Aurelia simply did not render subroutes if no router-view
is found.
Does anyone have suggestions as to how to implement this in a safe and simple way, or would it be necessary to patch the framework?
Thanks!