renderUI函数中的多个标签$ textarea框闪亮

时间:2015-08-28 00:47:32

标签: textbox shiny

我有一个闪亮的应用程序,可以在两个独立的样本之间进行t检验。根据单选按钮选项,您可以为两个样本输入摘要统计信息(\ bar {x},sd,n),也可以复制/粘贴或键入每个样本的值。 renderUI函数看起来像这样:

    output$ui<-renderUI({
      switch(input$option,
             "Summary Stats" = 
               c(textInput("barx1","$$\\bar{x}_1$$", "0"),
                 textInput("picksd1", "$$sd_1$$", "1"),
                 textInput("n1","$$n_1$$","10"),
                 textInput("barx2", "$$\\bar{x}_2$$","1"),
                 textInput("picksd2", "$$sd_2$$","1"),
                 textInput("n2","$$n_2$$","10")),
             "Input Data" = c(tags$textarea(id="foo1", rows=10, cols=38), tags$textarea(id="foo2", rows=10, cols=38)))
    })

textInputs在UI中渲染并正常工作,但文本框没有,这里有什么帮助吗?对于一个示例案例,我有一些非常相似的东西,其中foo1工作正常,问题似乎是我想要两个文本框,也许我将它们以c()形式存储,尽管这对textInputs工作正常。提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我设法通过使用html代码而不是&#34;标记&#34;来完成这项工作。不知道为什么标签$ textarea在c(标签$ textarea,标签$ textarea)形式中使用时不起作用,但这看起来更干净了:

    output$ui<-renderUI({
switch(input$option,
       "Summary Stats" = HTML(
         '<div class="form-group shiny-input-container">
           <label for="barx1">$$\\bar{x}_1$$</label>
           <input id="barx1" type="text" class="form-control" value="0"/>
           </div>
         <div class="form-group shiny-input-container">
           <label for="picksd1">$$sd_1$$</label>
          <input id="picksd1" type="text" class="form-control" value="1"/>
          </div>
         <div class="form-group shiny-input-container">
           <label for="n1">$$n_1$$</label>
         <input id="n1" type="text" class="form-control" value="10"/>
         </div>
        <div class="form-group shiny-input-container">
          <label for="barx2">$$\\bar{x}_2$$</label>
         <input id="barx2" type="text" class="form-control" value="1"/>
         </div> 
        <div class="form-group shiny-input-container">
          <label for="picksd2">$$sd_2$$</label>
         <input id="picksd2" type="text" class="form-control" value="1"/>
         </div> 
        <div class="form-group shiny-input-container">
          <label for="n2">$$n_2$$</label>
         <input id="n2" type="text" class="form-control" value="10"/>
         </div>' 
       ),
       "Input Data" = HTML(
         '<div class="form-group shiny-input-container">
              <label for="foo1">Sample 1</label>
         <textarea id="foo1" rows="10" cols="38"></textarea>
         </div>
         <div class="form-group shiny-input-container">
         <label for="foo2">Sample 2</label>
         <textarea id="foo2" rows="10" cols="38"></textarea>
         </div>'
       ))   
      })