我有一个经典的UI对话框。这在对话框中有一个下拉列表,其中“true”/“false”作为选项
<mydropdown
jcr:primaryType="cq:Widget"
allowBlank="{Boolean}false"
fieldLabel="My Dropdown"
name="./dropdownValue"
type="select"
xtype="selection">
<options jcr:primaryType="cq:WidgetCollection">
<test
jcr:primaryType="cq:Widget"
text="True"
value="true"/>
<test_x0020_1
jcr:primaryType="cq:Widget"
text="False"
value="false"/>
<test_x0020_2
jcr:primaryType="cq:Widget"
text="someothervaluetext"
value="someothervalue"
</options>
</mydropdown>
JCR结构将值保存为String“true”,“false”。当用户编辑对话框时,应在字段中填充该值。 “true”,“false”值没有填充,而“someothervalue”工作正常。
检查了libs中的 Selection.js ,下面的代码负责在对话框中填充数据
var count = this.comboBox.store.getTotalCount();
var i = 0;
for (; i < count; i++) {
var data = this.comboBox.store.getAt(i).data;
if (data.value == this.value) { // Here data.value is coming as boolean
this.hiddenField.setValue(data.value);
this.comboBox.setValue(data.text);
break;
}
}
data.value
将以boolean
的形式出现,但在JCR中,值将存储为字符串。因此,条件评估为false并且未设置值。
答案 0 :(得分:2)
我看到的唯一问题是name
属性的值。通常,名称以./
为前缀,以便在节点上设置属性及其对应的值。如果名称不以./
开头,则省略。
试试这个,它应该有效。
name="./dropdownValue"
Sling Post Servlet documentation详细介绍了Sling Post Servlet的工作原理。
答案 1 :(得分:0)
使用Adobe Day Care进行检查。 Adobe证实,这是AEM 6.1中的一个错误。这已在AEM 6.2中修复。以下是花岗岩虫参考
CQ-64223 - cq:Widget xtype =选择类型= select不能包含选项 有价值&#34;真&#34;和&#34;假&#34;
对于早期版本,可以从Adobe请求修补程序。对于我的情况&#34; 1&#34;,&#34; 0&#34;适合我,因为我必须用角度ng-if/ng-show