私はShinyアプリを開発していますが、アクションボタンがいくつかあるため、エンドユーザーが誤ってbsModalを閉じないようにする必要があります。私はいくつかの調査を行い、背景とキーボードのパラメーターを上書きする必要があることを学びましたが、いくつかの提案を見たとしても、これがコードのどこにある必要があるのか正確にはわかりません。私はJavaScriptに精通しておらず、Shinyを初めて使用するため、簡単な作業のように感じますが、これを正しく行うことはできません。
誰かがそれを必要とする場合に備えて、ボタンを押した後にモーダルウィンドウを開くダミーコードを次に示します。誤って背景をクリックしたり、escを押したりして、ユーザーが閉じないようにする必要があります。
library(shiny)
library(shinyBS)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
actionButton("go", "Go")
,bsModal("window", "Window", "go"
,textOutput("print"))
)
,mainPanel()
)
)
server <- function(input, output, session) {
output$print = renderText("This is a test")
}
shinyApp(ui, server)
私はこれらの2つのスレッドで提供されるソリューションを組み合わせようとしました:
`bsModal`ウィンドウの` Close`ボタンを非表示/無効にする方法はありますか?
外側をクリックしたり、エスケープを押したりしたときにBootstrap Modalが消えないようにしますか?
このようなことを(いくつかの異なる組み合わせで)行うために、しかしそれは実際には機能しませんでした:
actionButton("go", "Go")
,bsModal("window", "Window", "go"
,textOutput("print")
,tags$head(tags$style("#window .modal{backdrop: 'static'}")))
)
どんな助けでも本当にありがたいです!
これはそれを行います:
bsModalNoClose <-function(...) {
b = bsModal(...)
b[[2]]$`data-backdrop` = "static"
b[[2]]$`data-keyboard` = "false"
return(b)
}
次に、ヘッダーとフッターを閉じて、そこで閉じないようにすることもできます。
bsModalNoClose("window", "Window", "go"
,textOutput("print"),
tags$head(tags$style("#window .modal-footer{display:none}
.modal-header{display:none}")))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加