Как открыть bsmodal блестящий R
Нажатие на кнопку - это единственный способ создать окно bsmodal?
Можно ли, например, щелкнуть строку старшей диаграммы и открыть окно bsmodal?
заранее спасибо
2 ответа
Решение
В highchars (а затем в highcharter) вам нужно использовать события javascript. Вы можете знать, когда пользователь щелкает некоторые серии на графике. В частности, вы можете использовать что-то вроде этого, используя ответ @Skalbhile, используя jquery и имя модала:
highchart() %>%
hc_chart(type = "column") %>%
hc_add_series(data = c(1, 2, 3)) %>%
hc_add_series(data = c(2, 1, 3), name = "other data") %>%
hc_plotOptions(
series = list(
point = list(
events = list(
click = JS("function(){
/* alert(this.series.name + ' ' + this.category); */
/* here you activate trigger the modal */
$('#modalExample').modal('show');
}")
)
)
)
)
Итак, наконец, демо может быть:
library(shiny)
library(shinyBS)
library(highcharter)
shinyApp(
ui =
fluidPage(
highchartOutput("chart"),
bsModal("modalExample", "Data Table", "tabBut", size = "large",
"Modal Content")
),
server =
function(input, output, session) {
output$chart <- renderHighchart({
highchart() %>%
hc_chart(type = "column") %>%
hc_add_series(data = c(1, 2, 3)) %>%
hc_add_series(data = c(2, 1, 3), name = "other data") %>%
hc_plotOptions(
series = list(
point = list(
events = list(
click = JS("function(){
/* alert(this.series.name + ' ' + this.category); */
/* here you activate trigger the modal */
$('#modalExample').modal('show');
}")
)
)
)
)
})
})
Вы можете сделать это программно, как
$("#modal_id").modal('show');