Встроенный способ получить только идентификатор модуля на сервере - PullRequest
0 голосов
/ 01 октября 2019

При создании блестящего модуля необходимо указать пространство имен идентификатора модуля, используя NS на стороне пользовательского интерфейса или session$ns() на стороне сервера. Однако, насколько я знаю, просто невозможно получить идентификатор модуля. Я мог бы сделать что-то вроде

module_ui = function(id){
    ns = NS(id)
    tagList(textOutput(ns('textOut')))
}

module_server = function(input, output, session){
    output$textOut = renderText({
        gsub('-meh$','',session$ns('meh'))
    })
}

ui = fluidPage(module_ui('module'))


server = function(input,output){
    callModule(module_server, id = 'module')
}

shinyApp(ui = ui, server = server)

и использовать gsub или подобную функцию, чтобы изолировать имя модуля, но я хотел бы знать, есть ли основной способ сделать это. Глядя на документацию для объекта сеанса я не видел другого пути, но я предполагаю, что должен быть способ доступа к идентификатору напрямую из объекта сеанса

Редактировать: Я нашел немного более прямой путь, но я не уверен, объективно ли он лучше, чем предыдущий метод

environment(fun = session$ns)$ns_prefix
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...