【发布时间】:2019-02-07 13:16:20
【问题描述】:
我正在创建一个闪亮的应用程序,用户可以单击“renderDT”表的一个单元格来选择文本,然后这个选择的文本将被添加到文本输入框中——这个功能类似于你在手机上输入文字,然后手机会给出几个候选词供您选择。然后您可以点击其中一个单词,该单词将自动转到您的文本框,以完成您的输入。
我能够找到有关如何将单击的单元格的值从here 获取到输出的示例。 'server.R' 上的类似内容
shinyServer(function(input, output,session) {
output$inputecho <- reactive({
input$inputtext
})
candidates <- reactive({
candidates <- data.table(
candidate=c("word1","word2","word3")
score=c(0.2,0.13,0.12)
) ### here candidates is a dummy data with same ###structure of real data.
candidates<-as.data.frame(candidates)
candidates
})
output$candidates<-renderDT({candidates()},server=FALSE, selection = list(mode='single',target="cell"))
observeEvent(input$candidates_cell_clicked,{
info=input$candidates_cell_clicked
if (is.null(info$value)||info$col!=0)return()
updateTextInput(session,'inputtext',value=paste0(inputtext,info$value))
})
}
)
这对于'ui.R'
shinyUI(fluidPage(
mainPanel(
textInput("inputtext", label="", value=" "),
p("Click to select from the top candidate words:"),
DT::dataTableOutput("candidates")
)
))
【问题讨论】: