Javascript 如果';聚合物中有什么?

Javascript 如果';聚合物中有什么?,javascript,polymer,polymer-1.0,Javascript,Polymer,Polymer 1.0,我试图显示一个基于对象类型的元素。例如,如果对象类型为“字符串”,则应显示纸张输入;如果类型为“布尔”,则应显示纸质无线电组,以此类推 下面是组件模板的一个片段 <template is="dom-if" if="{{_isStringInput(question.input_type)}}"> <paper-input name="{{question.id}}" label="{{question.sort}}. {{question.text}}" always-f

我试图显示一个基于对象类型的元素。例如,如果对象类型为“字符串”,则应显示
纸张输入
;如果类型为“布尔”,则应显示
纸质无线电组
,以此类推

下面是组件模板的一个片段

<template is="dom-if" if="{{_isStringInput(question.input_type)}}">
   <paper-input name="{{question.id}}" label="{{question.sort}}. {{question.text}}" always-float-label placeholder="{{question.help}}" required="{{question.required}}" error-message="Required" class="{{_isRequiredClass(question.required)}}"></paper-input>
</template>

<template is="dom-if" if="{{_isBooleanInput(question.input_type)}}">
   <label>{{question.sort}}. {{question.text}}</label>
   <paper-radio-group selected="" name="{{question.id}}" attr-for-selected="value" data-required="{{question.required}}">
      <paper-radio-button name="{{question.id}}" value="yes">Yes</paper-radio-button>
      <paper-radio-button name="{{question.id}}" value="no">No</paper-radio-button>
      <p class="radio-error-message">Required</p>
   </paper-radio-group>
</template>

{{question.sort}。{{问题.文本}
对
不

必需

可以想象,如果我检查更多类型(“int”、“date”、“email”等),
dom if
列表可能会越来越大


如果没有一堆
dom if
模板,有没有更好/更优雅的方法来实现这一点?(我想的是开关盒和一堆if-else if,但在聚合物中)

我认为这是聚合物最接近的东西

找不到任何
if else if


是Github上的一个公开增强问题。不要期望Polymer很快会有任何这样的变化。

如果您不介意元素只是隐藏而不是销毁(如果
dom,无论如何也可以选择使用
dom),您可以使用CSS或
hidden
属性来切换dom的可见性

使用CSS类隐藏元素
toggle
函数可能有点笨拙,但这就是使用类进行切换的方式。有关属性的示例,请参见下文

聚合物({ 是:'切换元素', 切换:函数(){ 如果(!this.disabled){ this.disabled='disabled'; }否则{ this.disabled=null; } } });

.残疾人{
显示:无;
}
单击以切换
这将切换