Sfoglia il codice sorgente

add class member page.route; allow passing page instance to ui.link

Falko Schindler 3 anni fa
parent
commit
d5628a44a8
2 ha cambiato i file con 12 aggiunte e 1 eliminazioni
  1. 11 1
      nicegui/elements/link.py
  2. 1 0
      nicegui/elements/page.py

+ 11 - 1
nicegui/elements/link.py

@@ -1,12 +1,22 @@
+from typing import Union
 import justpy as jp
 import justpy as jp
 from .element import Element
 from .element import Element
+from .page import Page
 
 
 class Link(Element):
 class Link(Element):
 
 
     def __init__(self,
     def __init__(self,
                  text: str = '',
                  text: str = '',
-                 href: str = '#',
+                 target: Union[Page, str] = '#',
                  ):
                  ):
+        """Link
+
+        Create a link.
+
+        :param text: link text
+        :param target: link target (either a string or a page object)
+        """
+        href = target if isinstance(target, str) else target.route
         view = jp.A(text=text, href=href, classes='underline text-blue')
         view = jp.A(text=text, href=href, classes='underline text-blue')
 
 
         super().__init__(view)
         super().__init__(view)

+ 1 - 0
nicegui/elements/page.py

@@ -41,6 +41,7 @@ class Page(jp.QuasarPage):
         self.view = jp.Div(a=self, classes=classes, style='row-gap: 1em')
         self.view = jp.Div(a=self, classes=classes, style='row-gap: 1em')
         self.view.add_page(self)
         self.view.add_page(self)
 
 
+        self.route = route
         jp.Route(route, lambda: self)
         jp.Route(route, lambda: self)
 
 
     def __enter__(self):
     def __enter__(self):