#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))