Passing Params from One Embedded View to Another Embedded View Using system.perspective.navigate()

I have two (2) views I use as templates for embedding in other views:

  1. tile-view-base:

  2. tile-view-minimal:

tile-view-base is embedded in the view pulse:

Here are the exposed prams for tile-view-base as embedded in the view pulse:

tile-view-minimal is embedded in the view pulse-screenshot:

Here are the exposed prams for tile-view-minimal as an embedded view in the view pulse-screenshot:

Each of the embedded view params are bound to params of the containing view(s).

The two templates as embedded in containing views are designed such that tile-view-base employs a Button and onClick event to navigate to a new browser tab displaying the containing view with embedded tile-view-minimal:

def runAction(self, event):
	
	newPage = self.view.params.tileViewMinimalURL
	myParams = {"selectPortfolio":self.view.params.selectPortfolio,
				"chartTitle":self.view.params.chartTitle,
				"dataMetric":self.view.params.dataMetric}
				
	system.perspective.print("\nnewPage: " + str(newPage) + "\n" + "myParams: " + str(myParams))
				
	system.perspective.navigate(page=newPage, newTab=True, params=myParams)

The concept here is to take the view params from pulse (which are bound to params of embedded tile-view-base) and pass them to the pulse-screenshot view params (which are bound to params of embedded tile-view-minimal)

The nav call indeed launches the view pulse-screenshot in a new browser tab as expected but none the of params that I'm attempting to pass find there way to the target embedded view tile-view-minimal.

It is further noted that the console printed message in runAction displays the proper params values in myParams dictionary.

Any help with this attempt to pass params between embedded views is greatly appreciated.

Hey Steve, it seems you can't pass params to a view when you open it in a new tab or at least it isn't work for me. What I did as a work around is send a message with the scope set to session and delay that message by a second or 2 to allow the other tab to open up. Then on the new tab, write a message script with scope set to session and receive the params you passed as the message payload.

View calling the navigation

New tab view

Another solution would be to use URL Query Parameters if you are only interested in passing in the few string values. If you need to pass the datasets chartData and tableData from this page and can't load that data in the new view I would probably use @Gavin_Tipker 's solution