is.textInput("my_text")
widget.type("my_list")
is.textInput <- function(widget_id){
out <- tryCatch(
{
# attempt to treat it as a textInput, change it and change it back
tmp <- input[[widget_id]]
updateTextInput(session, widget_id, value = character(0))
updateTextInput(session, widget_id, value = tmp)
},
error=function(cond) { return("NO") },
warning=function(cond) { return("NO") },
finally={}
)
# if error message happens then not textInput
if(out == "NO")
return("FALSE")
# if no error message then is textInput
return("TRUE")
}
但我不想故意制造错误/异常。我不希望逻辑检查改变应用程序的状态。
其他关于我如何实现这一目标的建议?
更新:我修改了javascript代码中的一行,使其与IE/RStudio Viewer兼容。IE/Viewer抛出错误,因为函数include()
不支持,请参见。include()在Internet Explorer中不起作用。相反,可以使用indexof()
。
您可以使用javascript按ID检查输入元素。可以通过document.getElementById()
找到该元素,然后可以通过getAttribute('class')
和getAttribute('type')
标识该类型。
结果可以通过shiny.oninputchange('input type',...)“发送”给R;
并通过input$inputtype
在R中使用。
该函数的第一个示例是:
getWidgetType <- function(widgetId){
paste0(
"elem = document.getElementById('", widgetId,"');
var message;
if(elem == null){
message = 'No input with id = ", widgetId," exists.'
}else{
// RStudio Viewer + IE workaround (dont have .include())
if(elem.getAttribute('class').indexOf('js-range-slider') > -1){
message = 'slider'
}else if (elem.nodeName == 'SELECT'){
message = 'select'
}else{
message = elem.getAttribute('type');
}
}
Shiny.onInputChange('inputType', message)
"
)
}
请注意,我为四个输入做了一个示例:numeric、text、selectInput和SliderInput。如果添加其他输入,则可能还必须检查其他属性。
可复制的例子:
library(shiny)
library(shinyjs)
ui <- fluidPage(
useShinyjs(),
textInput("textInput", "id = textInput", "text"),
numericInput("numInput", "id = numInput", 10),
sliderInput("slideInput", "id = slideInput", 1, 10, 5),
hr(style = "height:1px;border:none;color:#333;background-color:#333;"),
textInput("widgetType", "widget type by id", "textInput"),
textOutput("widgetId")
)
server <- function(input, output, session) {
output$widgetId <- renderText({
runjs(getWidgetType(input$widgetType))
input$inputType
})
}
shinyApp(ui, server)
我正在使用内置的woocommerce类别小部件,目前它同时显示类别和子类别。 我通过以下代码排除了一个类别: 但是小部件仍然显示它的子类别。 链接:http://tithaty.com.br/?post_type=product 隐藏的类别是Coleções(我配置为父级),我想隐藏它的子类别,当前的和将来添加的子类别。 Colecao teste是一个子类别的例子。 有什么想法吗? 非常感谢。
我有以下代码,用于从WooCommerce产品类别小部件中删除除管理员和批发客户(自定义用户级别)之外的所有用户的“批发类别”(通过slug)。 这非常好,但是它只删除了父类别,留下了所有的子类别。我如何也删除“批发类别”的子类别? 谢啦
我试图在WooCommerce的子类别页面中查找父类别名称,即我有4个主要类别。 父母1 子1 子2 子3等 父母2 子1 子2 子3等 等等。 如果我在Sub2的列表页上,Sub2是Parent1的子级,我想知道Parent1类别的名称。
小部件(Widgets)是功能丰富、有状态的插件,它有一个完整的生命周期,带有方法和事件。您可以查看 部件库(Widget Factory)文档 了解更多详情。 API 描述 也属于类别 折叠面板部件(Accordion Widget) 把一对标题和内容面板转换成折叠面板。 自动完成部件(Autocomplete Widget) 自动完成功能根据用户输入值进行搜索和过滤,让用户快速找到并从预设值列
我刚开始使用openNLP来识别名字。我使用的是open NLP附带的模型(en-ner-person.bin)。我注意到,虽然它可以识别美国、英国和欧洲的名字,但它不能识别印度或日本的名字。我的问题是(1)是否已经有模型,我可以用来识别外国名字(2)如果没有,那么我相信我将需要生成新的模型。在这种情况下,是否有一个可供我使用的copora?
问题内容: 在Java中,这些之间有什么区别: 我已经多次检查过Javadoc,但这从来不能很好地解释它。我也进行了测试,但没有反映出调用这些方法背后的任何实际含义。 问题答案: 如果不确定某件事,请尝试先编写测试。 我这样做: 印刷品: 最后一个块中有一个空条目,其中返回一个空字符串。 结果是: 该 名称 是您愿意使用动态加载与类,例如,调用的名称与默认。在一定范围内,所有类都有唯一的名称。 该
本文向大家介绍phpcms的分类名称和类别名称的调用,包括了phpcms的分类名称和类别名称的调用的使用技巧和注意事项,需要的朋友参考一下 话不多说,请看代码: 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!
我有一个运行: 默认段落样式为: 此运行在msword中显示Calibri字体名称。卡里布里在里面的唯一地方。docx是theme1。xml(a:theme/a:themeElements/a:fontScheme/a:minorFont/a:latin)。主题为“办公主题”,方案为“办公”。 在这种情况下,这是搜索字体名称的正确位置吗