R ggiraph onclick javascript -блестящий

#javascript #r #ggplot2 #shiny #printf

#javascript #r #ggplot2 #блестящий #printf

Вопрос:

У меня есть ggplot, и я пытаюсь сделать его интерактивным с помощью пакета ggiraph. Всплывающая подсказка работает нормально, функция «onclick», кажется, появляется в блестящей консоли, когда я нажимаю на geom_line .

Но я не могу заставить это работать, поэтому, когда я нажимаю a geom_line_interactive , чтобы изменить (с помощью js) значение input type (от search до submit ) и установить значение value DataTable search input .

HTML-код таблицы search input :

 <input type="search" class="form-control input-sm" placeholder aria-controls="DataTables_Table_0">
 

Создайте новый столбец для js, используемый в функции onclick:

 dfMonth$onclick <- sprintf(
  "function clickLine(){document.getElementsByClassName("form-control input-sm").type="submit".value="%s";}",as.character(dfMonth$ISBN) )
 

В файле server.R используйте js из столбца onclick:

 geom_line_interactive(aes(color=ISBN, group=ISBN, tooltip=ISBN, onclick=onclick))
 

Я пытался использовать только document.getElementsByClassName(….. не включая его в функцию (это никак не влияет на input поле). Я не могу изменить html, поэтому я не могу добавить идентификатор в поле ввода.

Ответ №1:

Эта суть демонстрирует, как заполнить поле ввода поиска DT из ggiraph в shiny:

https://gist.github.com/davidgohel/68623058bad5b42f253ec8823a732a45

Комментарии:

1. Это работает. Большое спасибо. Я думаю, что это может предоставить большие возможности для повышения эффективности данных за счет обеспечения динамического взаимодействия между различными виджетами («заставляя htmlwidgets общаться друг с другом»). Я избежал синтаксической ошибки, вызванной обратными тиками, изменив data$onclick <- paste0("set_search_val(`", data$label, "`);") на data$onclick <- sprintf("set_search_val("%s");",as.character(data$label))