R为Shiny gallery的mychooser函数重置输入值
我仍在学习Shiny并开发自己的应用程序 以下小部件允许选择用户想要的列(带有实时示例): 用户界面R为Shiny gallery的mychooser函数重置输入值,r,shiny,R,Shiny,我仍在学习Shiny并开发自己的应用程序 以下小部件允许选择用户想要的列(带有实时示例): 用户界面 source(“chooser.R”) 流动摄影( 选择输入(“我的选择器”、“可用的青蛙”、“选定的青蛙”, row.names(usarrest),c(),size=10,multiple=TRUE ), 逐字输出(“选择”) ) 服务器.R 功能(输入、输出、会话){ 输出$selection方法如下 在chooser binding.JS中添加此JS代码,例如在binding.set
source(“chooser.R”)
流动摄影(
选择输入(“我的选择器”、“可用的青蛙”、“选定的青蛙”,
row.names(usarrest),c(),size=10,multiple=TRUE
),
逐字输出(“选择”)
)
服务器.R
功能(输入、输出、会话){
输出$selection方法如下
在chooser binding.JS
中添加此JS代码,例如在binding.setValue
之后:
binding.receiveMessage = function (el, data) {
$(".chooser select.left").empty();
$(".chooser select.right").empty();
if(data.left !== null){
for(var i = 0; i < data.left.length; ++i){
$(".chooser select.left")
.append($("<option>" + data.left[i] + "</option>"));
}
}
if(data.right !== null){
for(var i = 0; i < data.right.length; ++i){
$(".chooser select.right")
.append($("<option>" + data.right[i] + "</option>"));
}
}
var chooser = $(el);
updateChooser(chooser);
chooser.trigger("change");
};
下面是一个例子:
# ui ####
ui <- fluidPage(
br(),
chooserInput("mychooser", "Available frobs", "Selected frobs",
row.names(USArrests), c(), size = 10, multiple = TRUE
),
verbatimTextOutput("selection"),
br(),
actionButton("update", "Update"),
actionButton("reset", "Reset")
)
# server ####
server <- function(input, output, session) {
output$selection <- renderPrint(
input$mychooser
)
observeEvent(input$update, {
updateChooserInput(session, "mychooser",
left = c("aaa", "bbb", "ccc"),
right = c("xxx", "yyy", "zzz"))
})
observeEvent(input$reset, {
updateChooserInput(session, "mychooser",
left = row.names(USArrests),
right = c())
})
}
shinyApp(ui, server)
#用户界面####
ui-Hmm…需要实现绑定.setValue
,这将允许使用会话$setInputValue
@Stéphanelarent请您再解释一下好吗?谢谢您的回答,我会检查并回来接受答案
# ui ####
ui <- fluidPage(
br(),
chooserInput("mychooser", "Available frobs", "Selected frobs",
row.names(USArrests), c(), size = 10, multiple = TRUE
),
verbatimTextOutput("selection"),
br(),
actionButton("update", "Update"),
actionButton("reset", "Reset")
)
# server ####
server <- function(input, output, session) {
output$selection <- renderPrint(
input$mychooser
)
observeEvent(input$update, {
updateChooserInput(session, "mychooser",
left = c("aaa", "bbb", "ccc"),
right = c("xxx", "yyy", "zzz"))
})
observeEvent(input$reset, {
updateChooserInput(session, "mychooser",
left = row.names(USArrests),
right = c())
})
}
shinyApp(ui, server)