2016-12-04 83 views
0

我的Vaadin應用程序正在使用將按鈕事件路由到導航器的自定義側面導航抽屜小部件。這些視圖然後顯示在contentLayout區域中。 contentLayout是這樣的,頁面可以重新使用頁面頂部的工具欄和導航抽屜,而無需重新加載它們。內容佈局導航和可鏈接的網址

enter image description here

導航器更新網址片段,例如:

首頁= http://example.com/#home

控制板頁面= http://example.com/#home/dashboard

我現在在哪裏,我需要舞臺在contentLayout區域內實現子導航。

儀表板+新聞頁面= http://example.com/#home/dashboard/news

而且也產生輕鬆的永久鏈接,爲用戶:所以,如果用戶點擊儀表板中的鏈接,它可以同時加入了新的URL片段信息顯示新觀點份額或書籤:

儀表板+新聞頁面+新聞條目= http://example.com/#home/dashboard/news/?item=123543432

我使用的是訂閱/發佈模式的呼叫導航contentLayout但我關心的是併發用戶,如果考慮到發佈事件可能會被另一個用戶使用。在如何處理用戶會話分離方面是否有明確定義的指南? (假設從不使用「靜態」,例如?)

其次,應用程序如何能夠像新聞項目示例一樣處理'perma-link'?我只看到Navigator用於反應性地修改事件中的URL,它能主動處理對特定URL的請求嗎?或者Vaadin的另一個組件是用來處理這個問題的?也許通過RequestListener綁定它?

我現在主要關注的是子導航解決方案。我不想將導航器注入每個可能需要打開另一個視圖或關閉其視圖的視圖。

+0

您不能在#!之後傳遞查詢字符串。給導航員。儘管你可以傳入參數。 http://example.com/#home/dashboard/news/?item=123543432可能是http://示例。com /#home/dashboard/news/item/123543432,您將能夠在視圖中提取數字。 –

回答

0

如果你不想使用導航器,你可以自己處理URL的東西。

  • 然後,您必須偵聽URI碎片更改。
  • 「鏈接」你有左側是不是真的鏈接,但有註冊的onclick事件,然後允許你修改你的頁面(S)

Here按鈕是有關文檔。

對於用戶分離:

  • 它默認做
  • 當你有一些事件總線/隊列中,那麼你將需要添加一個會話ID,如果你希望限制的消息一個會話