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;
}
}
});代码>
.残疾人{
显示:无;
}
单击以切换
这将切换