我有一个应用程序,我想在前面问一个问题,比如弹出一个对话框,回答问题,让盒子消失,然后运行我的应用程序。
我已经找了一个多星期了,很多事情都没有结果。我只试过readline()。我已经看过ShinyBS了,但是没有一个例子起作用。我调查过tcltk2。虽然我没有发现任何错误,但没有发生任何意外,没有任何对话框。
下面是我想做的一个简单的例子。
假设我只想要一个弹出的盒子来问,你叫什么名字?
输入名称后,方框关闭,应用程序开始。也许这个应用程序现在说的是“你好名字”。
请帮我更新下面的代码。
library(shiny)
library(tcltk2)
library(shinybs)
#Create pop up box asking name. Then substitute this value into XXX below.
ui <- shinyUI(fluidPage(
# Application title
titlePanel("Hello XXX, how are you?")
)
)
server <- shinyServer(function(input, output) {
})
# Run the application
shinyApp(ui = ui, server = server)发布于 2016-07-26 19:00:07
为了完整起见,下面是我编写的代码。这是从猪排引用的链接中收集到的。虽然有些地方我还是不明白。
library(shiny)
Logged = FALSE;
ui1 <- function(){
tagList(
div(id = "login",
wellPanel(textInput("name", "Name"),
br(),actionButton("submit", "Submit"))),
tags$style(type="text/css", "#login {font-size:10px; text-align: left;position:absolute;top: 40%;left: 50%;margin-top: -100px;margin-left: -150px;}")
)}
ui2 <- function(){fluidPage(
# Application title
titlePanel({
fluidRow(column(12,
textOutput("greeting")))
})
)}
ui = (htmlOutput("page"))
server = (function(input, output,session) {
USER <- reactiveValues(Logged = Logged)
observe({
if (USER$Logged == FALSE) {
if (!is.null(input$submit)) {
if (input$submit > 0) {
Username <- isolate(input$name)
if (length(Username) > 0 ) {
USER$Logged <- TRUE
}
}
}
}
})
observe({
if (USER$Logged == FALSE) {
output$page <- renderUI({
div(class="outer",do.call(bootstrapPage,c("",ui1())))
})
}
if (USER$Logged == TRUE)
{
output$page <- renderUI({
div(class="outer",do.call(fluidPage,ui2()))
})
print(ui)
}
})
output$greeting <- renderText({
print(paste("Hello, how are you", " ", input$name,"?", sep = ""))
})
})
runApp(list(ui = ui, server = server))https://stackoverflow.com/questions/38571810
复制相似问题