소스 검색

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

Falko Schindler 3 년 전
부모
커밋
d5628a44a8
2개의 변경된 파일12개의 추가작업 그리고 1개의 파일을 삭제
  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
 from .element import Element
+from .page import Page
 
 class Link(Element):
 
     def __init__(self,
                  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')
 
         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.add_page(self)
 
+        self.route = route
         jp.Route(route, lambda: self)
 
     def __enter__(self):