首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中亮井板的Rearange列表与uiOutput (shinyjqui)

R中亮井板的Rearange列表与uiOutput (shinyjqui)
EN

Stack Overflow用户
提问于 2019-08-26 14:17:58
回答 1查看 103关注 0票数 0

我有一个有wellPanels列表的闪亮的应用程序。它们用于来自shinyjqui的jqui_sortable中。面板在服务器部分(ui中的uiOutput )中生成。面板的顺序可以通过鼠标更改,并写入文件(通过ids)。然后,我想打开这个文件,用加载的数据更改默认顺序。

问题:我无法摆脱面板之间呈现的单词"div“(运行下面的代码)。

代码是用解决方案中的一些行编写的(感谢@TimTeaFan):

sortable

代码语言:javascript
复制
library(shiny)
library(shinyjqui)

ui <- fluidPage(
  sidebarLayout(fluid = TRUE,
                sidebarPanel(helpText("HelpText")),
                mainPanel(
                  fluidRow(column(12,
                                  actionButton(inputId = "btn1",label = "Button1"),
                                  tags$style(HTML(".ui-sortable {
                                    width: 1200px !important;
                                    } ")),
                                  uiOutput('multiobject'),
                                  actionButton(inputId = "btn2",label = "Button2")
                  )) 
                )       
  )
)
server <- function(input, output, session) {
  sortableorderednameList<-reactiveVal(
    c("A","B","C")
  )
  wpFunc <- function(v,name,helptext){
    return(tags$div(wellPanel(id=paste0(v,"P"),
                              div(style="display: inline-block;  width: 10px;",
                                  checkboxInput(paste0(v,"Chk"), label = NULL, value = TRUE)),
                              div(style="display: inline-block;  width: 150px;",
                                  textInput(paste0(v,"TI"), label = NULL, value = name)),
                              div(style="display: inline-block;",helpText(helptext)), 
                              style = "padding: 1px;")))
  }
  observe({
    if(is.null(input$sortablecollistJQ_order$id)) {return()}
    mylist <- input$sortablecollistJQ_order$id
    mylist <- unlist(lapply(mylist, function(v) substr(v,1,nchar(v)-1)))
    print(mylist)
    print(" ")
    isolate(sortableorderednameList(mylist))
  })
  output$multiobject <- renderUI({
    uiList <- list()
    for (v in sortableorderednameList()) {
      switch(v,
             "A" = {uiList <- append(uiList,wpFunc(v,"A","There is A"))},
             "B" = {uiList <- append(uiList,wpFunc(v,"B","There is B"))},
             "C" = {uiList <- append(uiList,wpFunc(v,"C","There is C"))}
      )
    }
    jqui_sortable(div(id = 'sortablecollistJQ',uiList))
  })
}

shinyApp(ui, server)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-27 10:08:33

经过实验,我得到了答案。如果有人感兴趣。

代码语言:javascript
复制
 for (i in 1:length(uiList)) {
    uiList[i] <- uiList[i]$children
  }

它改变列表的结构,放在jqui_sortable调用之前。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57659717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档