Это что-то вроде хака, использующего session$ns
(который обычно используется для создания выходов модуля и т. Д.). С его помощью вы можете создать образец идентификатора и извлечь из него идентификатор модуля.
fooModule <- function(input, output, session) {
x <- session$ns('tmp') # make an ID string
mod_id <- substr(x, 1, nchar(x)-4) # remove last 3 characters, ie "-tmp"
observeEvent(input$show, {
showModal(
modalDialog(
title = paste0("Add ", mod_id), # Want module id here
footer =
div(
modalButton("Cancel"),
actionButton("insert", "Save")
)
)
)
})
}
Более чистым методом будет передача идентификатора модуля в качестве дополнительного аргумента при вызове callModule
, например:
fooModule <- function(input, output, session, mod_id) {
observeEvent(input$show, {
showModal(
modalDialog(
title = paste0("Add ", mod_id), # Want module id here
footer =
div(
modalButton("Cancel"),
actionButton("insert", "Save")
)
)
)
})
}
server <- function(input, output, session) {
callModule(fooModule, "test", mod_id='test')
}