Как добавить HTML зависимостей в функцию обновления * для пользовательского блестящего ввода - PullRequest
0 голосов
/ 14 марта 2020

У меня есть пользовательский блестящий ввод (MyInput), который позволяет вам включать значок. Значок можно обновить с помощью функции updateMyInput.

Все работает нормально, если значок был задан изначально. Но если начальный значок НЕДЕЙСТВИТЕЛЕН, а значок добавлен с updateMyInput, он не работает, так как зависимости не добавляются.

Я попытался использовать Shiny.renderDependencies в JS безуспешно.
Сначала я должен был добавить зависимости к объекту значка, как это, иначе он не был передан в JS.

icon$htmldeps <- htmltools::htmlDependencies(icon)

Затем в JS я сделал

Shiny.renderDependencies(data.icon.htmldeps)

, который добавляет таблицы стилей с неправильным href (не определено):

<link rel="stylesheet" type="text/css" href="undefined/css/v4-shims.min.css">
<link rel="stylesheet" type="text/css" href="undefined/css/all.min.css">

Как правильно добавить зависимости?

1 Ответ

1 голос
/ 14 марта 2020

Добавьте ваши зависимости явно в вашей функции myInput:

# With htmltools >= 0.3.5
iconInput <- function(inputId, icon) {
  tags$div(
    id = inputId,
    icon,
    htmltools::findDependencies(shiny::icon("home"))
  )
}

# With htmltools < 0.3.5
iconInput <- function(inputId, icon) {
  htmltools::attachDependencies(
    x = tags$div(
      id = inputId,
      icon
    ), 
    value = htmltools::findDependencies(shiny::icon("home"))
  )
}

Со стороны сервера вы можете попробовать:

icon$htmldeps <- shiny::createWebDependency(
  htmltools::resolveDependencies(
    htmltools::findDependencies(
      shiny::icon("home")
    )
  )[[1]]
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...