#r #shiny #rhandsontable
Вопрос:
У меня есть блестящее приложение с несколькими вкладками, в которых я рендерингую rand-таблицу и хотел бы предоставить возможность поиска. Это модуль, который я написал для отображения такой таблицы с поиском :
# Module for rendering rhandsontable with search rtable_UI lt;- function(id) { ns lt;- NS(id) tagList( textInput("searchField", "Search"), rhandsontable::rHandsontableOutput(ns('table_output')) ) } rtableServer lt;- function(id, df) { moduleServer(id, function(input, output, session) { output$table_output lt;- rhandsontable::renderRHandsontable({ rhandsontable::rhandsontable(df, search = TRUE) }) }) }
Обратите внимание, что поле поиска не находится в его пространстве имен. Если я попробую ns("searchField" )
, функция поиска не будет работать в моем блестящем приложении:
# Shiny App ui lt;- navbarPage( "example", tabPanel( 'First Tab', rtable_UI('table1') ), tabPanel( 'Second Tab', rtable_UI('table2') ) ) server lt;- function(input, output, session){ rtableServer('table1', iris) rtableServer('table2', mtcars) } shinyApp(ui, server)
Функция поиска работает только для первой вкладки, и я думаю, что это связано с тем, что идентификаторы полей поиска совпадают. Однако изменение идентификатора также не представляется возможным, как видно здесь. Есть ли какой-то способ сделать так, чтобы rhandsontable знал о пространстве имен?