使用Javascript在Shiny中配置googleis事件监听器
r - Using Javascript to configure a googleVis event listener in Shiny
基本上,我有一个gvisCalendar图表从googleis包在一个闪亮的应用程序,我想显示一个dataTable下面的图表,对应于一个选定的框。
我可以通过设置gvis.listener来添加事件侦听器。jscode参数为一个变量,该变量保存javascript代码字符串。例如,使用以下代码,我可以调出所选日历日期的wikipedia页面:output$dates_plot <- renderGvis({
gvisCalendar(calendar.ddply,
options = list(
colorAxis = "{
minValue: 0,
colors: ['E9967A', 'A52A2A']
}",
gvis.listener.jscode = jscode2 )
)
})
jscode2<- "window.open('http://en.wikipedia.org/wiki/'
+ data.getValue(chart.getSelection()[0].row,0)); "
使用这段代码,我运行我的程序,选择"June 16, 2015"框,在我的浏览器上出现了这个网站的新选项卡:https://en.wikipedia.org/wiki/Tue_Jun_16_2015_00:00:00_GMT-0400_(EDT)
我并不想对维基百科做什么,我只是举个例子。
我所要做的就是将所选日历框的日期保存为R对象,这样我就可以显示与该日期对应的数据表。
我几乎没有javascript的经验。谢谢你!
可以使用Shiny.onInputChange
将数据发送回服务器。下面是一个例子:
library(shiny)
library(googleVis)
server <- function(input, output) {
output$dates_plot <- renderGvis({
gvisCalendar(Cairo,
options = list(
colorAxis = "{
minValue: 0,
colors: ['E9967A', 'A52A2A']
}",
gvis.listener.jscode = "
var selected_date = data.getValue(chart.getSelection()[0].row,0);
var parsed_date = selected_date.getFullYear()+'-'+(selected_date.getMonth()+1)+'-'+selected_date.getDate();
Shiny.onInputChange('selected_date',parsed_date)")
)
})
output$date <- renderText({
input$selected_date
})
}
ui <- shinyUI(fluidPage(
htmlOutput("dates_plot"),
textOutput("date")
))
shinyApp(ui = ui, server = server)
在这个例子中,我将日期解析为YYYY/M/D,如果你想保持javascript的长日期格式,你也可以返回selected_date.toString()
而不是parsed_date
。
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- 如何从画布上的某个移动事件中获取X和Y
- Jquery:未触发select事件
- JsFiddle上的鼠标事件不起作用
- 只覆盖箭头键滚动事件
- $window.ga在AngularJS事件中未定义
- cron作业与Javascript计时事件
- 使用Javascript在Shiny中配置googleis事件监听器