R闪亮,我可以在一个呼叫中包含多个应用程序吗?

时间:2018-12-19 11:55:47

标签: r shiny

我遇到一个问题,有些用户可能具有数据访问权限,而其他用户则没有。虽然我可以将数据检查嵌入到现有应用程序中,但这非常麻烦(并且需要由多个用户完成)。我想做的是下面的例子:

library(shiny)

jsResetCode <- "shinyjs.reset = function() {history.go(0)}" # Define the js method that resets the page

if (!file.exists("example.csv")) {
  shinyApp(ui = function() {
    fixedPage(useShinyjs(),extendShinyjs(text = jsResetCode),div(
                class="jumbotron",
                tags$p("Please enter your username and password in order to initialize access."),
                div( 
                  textInput("user", "User Name"),
                  passwordInput("pass", "Password"),
                  actionButton("submit", "submit")
                )
              )
    )
  }, 
  server = function(input, output, session) {

    observeEvent(input$submit, {

      write.csv(1, "example.csv")
      js$reset()

      # Want to reload the page now!
    }) 
  }
  )
}

shinyApp(ui = function() {
  fluidPage(plotOutput("myplot"))
}, 
server = function(input, output, session) {

  output$myplot <- renderPlot({plot(rnorm(100))}) 
}
)

在这里,我想我有一些身份验证文件,用户提供了他们的用户名和密码,它生成了该文件并重新启动,这次不评估第一个呼叫。

在理想的世界中,然后将第一段包装在函数auth_check()中,我将其放在app.R文件的顶部。

但是,测试似乎表明只忽略了第一组代码,并且仅评估了最后的闪亮调用。

这甚至可能吗?如果不能,您能否建议其他方法,理想情况下,这些方法可以让我将代码添加到我的app.R调用中,而不用修改现有应用程序?

0 个答案:

没有答案