【问题标题】:obtain another UI element value in ui.R in R shiny在 R 闪亮的 ui.R 中获取另一个 UI 元素值
【发布时间】:2015-05-27 23:05:56
【问题描述】:

这可能是一个非常简单的问题,但我似乎无法让它发挥作用。 在我的ui.R 中,我有一个 ID 为“产品”的下拉列表,如何在ui.R 本身的另一个位置使用产品的选定值。 我尝试了 input.product、input.product.value 等...都没有成功 有什么帮助吗? 提供更多信息:我已尝试以下方法在我的网页上获取超链接:

 server.R
    output$sppath <- renderText({
          link1<-paste("http://server2/projects/", input$product, "/collaboration/forms/collaborative%20documents.aspx?&SortField=Modified&SortDir=Desc",sep="")
   return(link1) })

  ui.R
     fluidRow(h6("Sharepoint:", a("Collaboration", href=textOutput("sppath")))),

使用上面的代码,“协作”下的链接被创建为

http://shiny-server:8787/p/5620/%3Cdiv%20id=%22sppath%22%20class=%22shiny-text-output%22%3E%3C/div%3E

我做错了什么?为什么 sppath 无法正确解析? 当我尝试在 a 标记之外的 textOutput 时,它会显示完整路径。

【问题讨论】:

  • 我不认为你可以。如果您的目标是动态更改 UI 元素,您应该在 ui.R 中创建一个 uiOutput。在server.R 中,您定义了一个依赖于input$productrenderUI。详情请参阅?renderUI?uiOutput
  • 我在 ui.R 中使用了 conditionalPanel,当 study 是 groupCheckbox 元素时,我可以有像“input.study.length>1”这样的条件,我希望有一些东西可以提取选定的值也来自 selectInput 元素
  • 您是否有理由在输入后继续使用. 而不是$,即使在之前的评论之后并且我的回答另有说明?为什么坚持把这一切都放在 ui.r 中?它与将其放入 renderUI 中的代码完全相同,只是后者实际上可以工作。参考你新发布的代码,好像多了一个斜线input$product,"/","/,你试过verbatimTextOutput吗?
  • 我更正了上面的代码并删除了多余的/,还尝试了verbatiTextOutput,但没有运气。注意:我在input 之后使用. 而不是$ 的唯一原因是,如果您需要针对它设置任何条件,那么您需要引用 ui.R 中的元素,我真的不不介意它是在 ui.R 还是 server.R 中完成,只要有办法做到这一点,我只是在探索将所有内容保留在 ui.R 本身中的可能性。

标签: r shiny


【解决方案1】:

语法是input$product,不是input.product,你想要的是 在使用 input$product 的 server.r 中渲染 UI,然后在 ui.r 中调用 uiOutput

【讨论】:

  • 我在 ui.R 中尝试了 input$product,但它不起作用。我知道它在引用输入元素时在 server.R 中有效,并且我知道如何创建 rederUI 元素,但我试图通过引用其他 ui 元素在 ui.R 本身中完成所有工作
  • 请编辑您的原始帖子以显示您尝试过的内容。在 server.r 的 renderUI({}) 中,您将编写类似 ui 的代码。没有办法(也不打算有办法)在 UI 中引用输入元素,这就是服务器文件的用途。
  • @hedgedandlevered 为您指明了正确的方向。有关uiOutput stackoverflow.com/a/23835738/4606130 的语法,请参阅此答案
【解决方案2】:

我能找到解决方案,这里是:

server.R
output$sppath <- renderUI({
      link1<-  paste("http://server2/projects/",input$product,"/collaboration/forms/collaborative%20documents.aspx?&SortField=Modified&SortDir=Desc",sep="")
 h6("Sharepoint:",tags$a( href=link1,"Collaboration"))
})

ui.R
   fluidRow(htmlOutput("sppath)),

【讨论】:

    猜你喜欢
    • 2020-07-27
    • 2017-12-16
    • 2015-07-02
    • 1970-01-01
    • 2019-01-30
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    相关资源
    最近更新 更多