【发布时间】:2017-01-27 03:33:44
【问题描述】:
我想将评级输入与shinyjs::reset()函数结合使用。一切正常,除了重置功能。有什么提示吗?
这是我的最小示例:
library(shiny)
devtools::install_github("stefanwilhelm/ShinyRatingInput")
library(ShinyRatingInput)
library(shinyjs)
ui <- shinyUI(bootstrapPage(
useShinyjs(),
ratingInput("movieRating", label="Rate this movie...", dataStop=5),
htmlOutput("movieRatingout"),
actionButton("resetbtn", "reset")
))
#the corresponding server.R
server <- shinyServer(function(input, output, session) {
output$movieRatingout <- renderText({
paste("The movie was rated ",input$movieRating)
})
observeEvent(input$resetbtn, {
reset("movieRating")
})
})
shinyApp(ui, server)
【问题讨论】:
-
在不带括号的控制台输入
reset来查看shinyjs::reset()的代码。它有一组if语句,用于查找已知的 Shiny 输入类型,因此它可以正确处理每一个。它不知道您的ratingInput函数。如果您编写updateRatingInput函数,您似乎可以让它工作。不过,不确定是否设置“类型”属性。 -
不幸的是,它并不是那么简单 - JavaScript 中还有代码可以检测这是什么类型的输入。我只是看了一下那个评级包,似乎只有少数人在使用它,但如果它变得更受欢迎,我会添加对重置它的支持。在此之前,我建议您编写自己的自定义代码来重置它
-
好的,我明白了,谢谢!