2016-10-01 63 views
0

我几乎我的项目做,我试图做我的应用程序的一些审美的变化,以更加用户友好的和有吸引力的。闪亮能够使用交互式用户界面吗?

想法: 由于我的应用程序需要上传表格才能工作,我认为如果我在屏幕中间放置一个独立的大型上传按钮,然后导航栏会出现结果,图表,下载将出现。

这是我已经试过:

shinyUI(

fileInput("file","Upload the file") 

if(!is.null(input$file)) { 
    navbarPage("My Application", 
        tabPanel("Data", tableOutput("table")), 
        tabPanel("Summary", tableOutput("sum")), 
        tabPanel("Regression", verbatimTextOutput("reg")), 
        tabPanel("Wavelet Coefficients", htmlOutput("tmod1"), 
          tableOutput("mod1"), 
          tableOutput("mod2")), 
        tabPanel("Wavelet Plot", plotOutput("plot")), 
        tabPanel("About file", tableOutput("filedf")) 
)}     
) 

的错误是:

ERROR: D:\OneDrive\MODWT App/ui.R:7:1: unexpected 'if' 
6: 
7: if 
^

是否有任何解决这个? :/

我目前的“B计划”是创建两个应用程序,其中第一个是上载一个,如果用户上传的文件,然后server.R将调用“原生态”的应用程序。这甚至有可能吗?

我道歉,如果这个问题似乎很傻,但我是一个小白编码器,所以我不知道的局限性。

感谢

+0

RStudio写了一篇文章给你:http://shiny.rstudio.com/articles/dynamic-ui.html – alistaire

+0

输入反应的对象不可在UI端。最好只是让ui返回'htmlOutput('AnEntirePage')',然后使用renderUI来编写if语句。 – Shape

回答

1

动态地添加或删除闪亮的UI元素,你应该使用内置的动态用户界面功能,如conditionalPanel

您会将逻辑从if语句移动到conditionalPanelcondition参数。

还有一些其他功能一样,你可以读到here,你也可以使用自定义JS。