我使用jquery-ui timepicker addon为Shiny创建了一个datetimeInput
的粗略实现。这个小部件本身工作正常,但是当应用程序还包含标准的Shiny dateInput
时,我遇到了一个问题。似乎timepicker所需的jquery-ui-timepicker-addon.js修改了datepicker,它也被dateInput
使用,它为datepicker添加了一个函数,该函数在使用{生成的元素调用时失败{1}}。
我可以修改jquery-ui-timepicker-addon.js中的代码来避免这个问题,但这通常是一个不方便的解决方案。我想知道是否有办法本地化我的小部件对jquery-ui-timepicker-addon.js的依赖,所以这个脚本对datepicker的修改只能对我的小部件进行观察。
dateInput
的源代码位于github。以下是该问题的演示。
datetimeInput
在jquery-ui-timepicker-addon.js中,我遇到了在遇到错误之前调用console.log,以显示实际上是导致错误的library(devtools)
install_github('roow', 'oow') # install the package with the datetimeInput widget
library(shiny)
library(roow)
test <- function(include_dateInput=FALSE) {
ui <- fluidPage(
if (include_dateInput) dateInput('date_input', 'date input', value='1/1/1999') else div(),
datetimeInput('dtime_input', 'datetime input', min='1/1/1999', max='1/2/1999', value='1/2/1999'),
textOutput('text_out')
)
server <- function(input, output, session) {
output$text_out <- renderText({
input$dtime_input
})
}
runApp(list(ui=ui, server=server))
}
test() # datetimeInput works fine
test(TRUE) # datetimeInput doesn't work. If you are in Chrome, you can view the error message with Ctrl+Shit+J
元素。作为参考,这里是我对github存储库中源代码dateInput
的定义:
datetimeInput