この質問は、navbarMenusとshinyjsパッケージの組み合わせでデラックスです。私は光沢のあるアプリを構築して、この提案に続いてユーザログインを追加しました:https://gist.github.com/withr/9001831。shinyjsでnavbarMenusを非表示にするには?
どのユーザーがログインしているのか分かります。ログインしているユーザーに応じて、navbarメニューと単一のtabPanelsの両方を表示して非表示にしたいとします。たとえば、 'admin' 「custom」はnavbarMenu 2を取得し、このメニュー内ではtabPanel 22のみを表示しますが、「custom」は「admin」、navbarMenusとすべてのtabPanelsは表示する必要があります。この最小限の例では
library(shiny)
library(shinyjs)
# Define UI
ui <-
fluidPage(
titlePanel("NAVBARPAGE"), # title
br(),
################### NAVBAR ############################
navbarPage(
"", # title
################### TABS THEMA #######################
hidden(div(id='m1',
navbarMenu("Menu1",
tabPanel('tab11',plotOutput('tab_11')),
tabPanel('tab12',uiOutput('tab_12'))))),
navbarMenu("Menu2",
tabPanel('tab21',uiOutput('tab_21')),
hidden(div(id='xxx',tabPanel('tab22',uiOutput('tab_22')))))
#######################################################
))
###### SERVER #####
server <- function(input, output,session) {
#Define user
user<-'admin'
observe({
if (user=='admin') {
show('xxx')
show('m1')
}
else {
hide('xxx')
hide(m1)
}
})
# Run the application
shinyApp(ui = ui, server = server)
、タブパネル(「tab22」)は隠されているが、私は
user<-'custom'
プラス、最初navbarMenu「M1」の外観を定義する場合、表示されません。奇妙です - それは実際に隠されていない、それは空だけです。 誰かが助けを知っていますか?
ありがとう、Geovany、多くの助けとなりました。もう1つの質問:あなたは誰もが隠されたコンテンツを表示するのは簡単だと述べました。理由を説明できますか?ありがとう。 – laurenzo