controlInput(
selectInput("letter", "Letter", letters),
block_user = TRUE/FALSE, # should the input value in server be blocked when updated by user
block_program = TRUE/FALSE, # should the input value in server be blocked when updated by update* method
attach_attributes = c(_trigger = TRUE, attrib_name = attrib_value) # attach attributes to the input value (some specials i.e. _trigger that tells whether send by user or update* or custom ones, e.g. class = "form_input")
)
Server:
str(input$letter)
> chr "a"
> - attr(*, "_trigger")= chr "user"
Implementation idea:
Add proper class to the input.
Mark input properly with shiny:inputchanged and shiny:updateinput (+ use event.stopPropagation() where needed).
Attach attributes with registerInputHandlers when loading the package.
Probable issue: To use registerInputHandlers we need to rewrite binding class, is it possible with keeping the standard logic unchanged?
Sth like:
UI:
Server:
Implementation idea:
shiny:inputchanged
andshiny:updateinput
(+ use event.stopPropagation() where needed).registerInputHandlers
when loading the package.Probable issue: To use
registerInputHandlers
we need to rewrite binding class, is it possible with keeping the standard logic unchanged?