Не работает с $( document ).ready(function()
, но с $( document ).on("shiny:sessioninitialized", function(event) {
:
library(shiny)
ui <- fluidPage(
HTML('<script>
$( document ).on("shiny:sessioninitialized", function(event) {
Shiny.onInputChange("too", "noone");
});</script>'),
textOutput("table")
)
server <- function(input, output) {
output$table <- renderPrint(input$too)
}
shinyApp(ui,server)
Причина этого указана в учебнике : Вы не можете вызвать функцию слишком быстро, вам нужно немного времени, пока Shiny не будет готов обновить входное значение:
в message.js, мы обернули наш код в $ (document) .ready (function () {...}. Эта функция jQuery сообщит браузеру запускать код внутри только один раз на странице, то есть в Document Объектная модель (DOM) готова для выполнения кода JavaScript. Обратите внимание, что когда мы активируем этот код слишком рано, т.е. до загрузки изображения, мы еще не можем прикрепить к нему обработчик событий. Другими словами, здесь мы хотим быть Убедитесь, что изображение существует, прежде чем присоединять к нему обработчик событий.
`` `