Understanding navigation in Perspective SampleQuickStart project

I’m trying to understand how the navigation in perspective works by working through the SampleQuickStart project. But I am failing to understand something that should be obvious.

In this project, under the “Ignition 101” page is a left hand navigation bar. When you drill down into the configuration of the navigation, you end up at a MenuTree object that has configurations like this:

Which points to a view called native-app which is located in views/ignition-101/perspective-features in the project designer.

When you click on the MenuTree button (in a running Perspective session) you get directed to this URL

But what I am missing is how does the MenuTree target map to the URL via the Page Configuration of the project?

ViewConfig

I feel like the target should be decomposed to the :folder and :featureView parameters, but I can’t see how. I have also read the Perspective - Menu Tree documentation, and this implies that the MenuTree targets should have direct one-to-one matching page configurations. But that is definitely not the case here.

And the only other place in the project that I have seen :folder and :featureView mentioned is as parameters on the views/ignition-101/landing-page view

I’ve also been watching various IU videos and I still can’t make the connection

Answering my own question as I finally found the missing piece.

The MenuTree target does get decomposed to the :folder and :featureView. If the target is:

/ignition-101/perspective-features/native-app

Then in the Perspective page configuration the “/ignition-101” maps to the page, and “perspective-features” is mapped to :folder and “native-app” is mapped to the :featureView. What I overlooked was that this is use to select the Primary View of “landing-page” (where the magic happens)

This view has the previously mentioned parameters of folder and featureView, which receive the matching URL parameters. But what is crucial is that “landing-page” contains a single embedded view “mainView” that has a defined binding.

Landing-Page

And this binding takes the View parameters of folder and featureView and uses them to dynamically create the path that mainView should display. And that was what I was missing.

1 Like