内置获取服务器上模块ID的方式

时间:2019-09-30 21:43:11

标签: r shiny

在创建闪亮的模块时,需要使用ui端的NS或服务器端的session$ns()对模块ID进行命名空间命名。但是据我所知,没有办法仅靠本身获取模块ID。我可以做类似的事情

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或类似的函数来隔离模块名称,但是我想知道是否有主流的方法。看着documentation for the session object,我没有找到其他方法,但是我认为必须有一种方法可以直接从会话对象访问ID

编辑:我确实找到了一种更直接的方法,但是我不确定它是否客观上比以前的方法好

environment(fun = session$ns)$ns_prefix

0 个答案:

没有答案