Confused about Quick Start navigation scheme

I’m trying to follow the logic in the navigations scheme for the “Ignition-101” page of the Quick Start project. I’m missing something, and I’m sure its simple.

The navigation section view is located at:

/ignition-101/nav/sidebar-dock-nav

This view has an Accordion object that hosts 2 views: one for “Perspective Features” and one for “Application”. These views are located at:

/ignition-101/nav/perspective-features
/ignition-101/nav/application

Each view contains a MenuTree, and each MenuTree contains a list of items that point to various views that are meant to be displayed. EG the “Bindings” item of the MenuTree in the Perspective-Features view has a target of:

/ignition-101/perspective-features/bindings

I thought this should point to the “bindings” view that contains the content describing bindings in ignition. But it doesn’t. The actual content is located at:

/ignition-101/feature-views/perspective-features/bindings

The content of the page itself is displayed via the view located at:

/ignition-101/nav/landing-page

This view contains an embedded view called “mainView” whose contents is loaded from a path that is formulated from two parameters on the landing-page view:

"ignition-101/feature-views/" + {view.params.folder} + "/" + {view.params.featureView}

So in order to display the content from the “bindings” view, these parameters would need to be set as:

folder=perspective-features
featureView=bindings

Resulting in the path that matches the actual location of the content:

ignition-101/feature-views/perspective-features/bindings

But this is where I am confused. How does clicking on the menu item populate the parameters on the mainView object? I can’t seem to find the missing link between the two components.

And what is the relationship between the target in the MenuTree item and the actual path to the content?

I haven’t looked at the 101 project, but it’s not using a message handler is it?

I have seen message passing[1] in one of the other examples in the same project. But in that case I saw an obvious message generation in a button click event performing a “send message” call. I also could trace the message to the recipient. In this particular case I haven’t been able to see any obvious mechanism.

[1] Even though I did trace the origin and recipient of that message, I’m still confused about how the actual system worked. Personally I think it would be great to have a matching design document that explains things like the navigation process, because there is no direct, explicit linear path from click A to display B. And having access to the source doesn’t help if you don’t know which particular rock you should be looking under on a beach full of rocks, and even what you should be looking for when you turn over a rock. Let alone that there are rocks under other rocks, and that them themselves are also under even more rocks.

Answering my own question because I just realized the missing piece.

What I was missing was that in the Perspective project Page Configuration was this entry:

/ignition-101/:folder/:featureView

When the user clicks on the MenuTree item, the Perspective system takes the Target from the MenuTree and maps it into the above page configuration.

/ignition-101/perspective-features/bindings

This mapping does an effective URL re-write by splitting on the “/” and applying the parts as:

"ignition-101" => /ignition-101/landing-page [target view object]
"perspective-features" => folder="perspective-features" [folder parameter on landing-page view object]
"bindings" => featureView="bindings" [featureView parameter on landing-page view object]

With the parameters now filled out, this loads the content from the expected location. It all makes sense now!