|
|
# Principe de développement de la partie serveur avec golem/module
|
|
|
|
|
|
Exemple de module server, cohérence avec celui de l'[UI](developpeur/golem/UI) :
|
|
|
|
|
|
~~~ r
|
|
|
mod_page_principale_tab_login_server <- function(id){
|
|
|
moduleServer(id, function(input, output, session) {
|
|
|
name <- eventReactive(input$AB_hello, {
|
|
|
return(input$TI_username)
|
|
|
})
|
|
|
|
|
|
# Show greetings
|
|
|
output$TO_Hello_user <- renderText({
|
|
|
if (name() %in% "") {
|
|
|
return("Hello world !")
|
|
|
} else {
|
|
|
return(paste("Hello", name(), "!"))
|
|
|
}
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
~~~
|
|
|
|
|
|
Il est préconisé de passer à une formulation [moduleserver plutôt que callmodule](https://shiny.rstudio.com/articles/modules.html#migrating-from-callmodule-to-moduleserver). Cela alourdit la notation côté module, mais facilite la lisibilité côté serveur (`app_server`) :
|
|
|
|
|
|
~~~ r
|
|
|
mod_page_principale_tab_login_server("page_principale_tab_login_ui_1")
|
|
|
~~~
|
|
|
|
|
|
On notera que le nommage du _namespace_ a son importance ici.
|
|
|
|
|
|
## cas particulier des modules imbriqués
|
|
|
|
|
|
Il faut faire référence au bon _namespace_ lors de l'appel au module server. |