Как открыть 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');
Другие вопросы по тегам