2016-11-18 2 views
2

I this example verwendet, um eine dynamische Benutzeroberfläche für eine glänzende App zu bekommen. Ich versuche nun, das Sidebar-Panel zu beziehen. Aber wenn ich das tue, erhalte ich ein hässliches ‚TRUE‘ in der Seitenleiste. enter image description here Jeder weiß, wie der TRUE loszuwerden, ohne den sourceme.r Text in die App zu bekommen. Vielleicht ist source nicht die Funktion verwendet werden soll?Sourcing-dynamische UI gibt 'TRUE' in glänzenden

require(shiny) 
require(shinydashboard) 


mainbody <- div(tabItems(
    tabItem(tabName = "t_item1", class = "active", box(title = "Item 1 information")), 
    tabItem(tabName = "t_item2", box(title = "Item 2 information")), 
    tabItem(tabName = "t_item3", box(title = "Item 3 information")) 
) 
) 

header <- dashboardHeader(title = "dashboard header") 

sidebar <- dashboardSidebar(uiOutput("sidebarpanel")) 

body <- dashboardBody(uiOutput("body")) 

ui <- dashboardPage(header, sidebar, body) 

server <- function(input, output, session) { 

    output$sidebarpanel <- renderUI({ 
    # if (USER$Logged == TRUE) { 

    # div(
     source('~/sourceme.r') 
    #  sidebarMenu(
    #  menuItem("Item 1", tabName = "t_item1", icon = icon("line-chart")), 
    #  menuItem("Item 2", tabName = "t_item2", icon = icon("users")), 
    #  menuItem("item 3", tabName = "t_item3", icon = icon("dollar")) 
    # ) 
     #) 
    }) 
    output$body <- renderUI({ 

     mainbody 
    }) 
} 

shinyApp(ui, server) 

sourceme.r:

sidebarMenu(
    menuItem("Item 1", tabName = "t_item1", icon = icon("line-chart"), selected = TRUE), 
    menuItem("Item 2", tabName = "t_item2", icon = icon("users")), 
    menuItem("item 3", tabName = "t_item3", icon = icon("dollar")) 
) 

Antwort

3

Machen Sie den Inhalt sourceme.r eine Funktion die sidebarMenu zurückgibt. Dann legen Sie den source Anruf außerhalb der server Funktion, und rufen Sie die neue Funktion innerhalb der server Funktion, um die sidebarMenu zurückzukehren.

+0

Danke, habe es schon selbst herausgefunden, werde es aber offensichtlich akzeptieren. –

Verwandte Themen