我有一个onyx.Picker,在选择之前显示"点击选择"按钮提示用户采取行动。正如预期的行为一样,一旦用户选择了一个选项,他们就无法恢复到"点击选择"显示。但是,我需要能够以编程方式重置表单,在这种情况下,选择器应该再次恢复到它的原始状态。
我已经发现我可以通过调用this.$.PickerName.setSelected(null)
删除已挑选的选项但是,用户界面不会还原为"点击选择"按预期显示。如何完全重置选择器?
答案 0 :(得分:1)
据我所知,选择器上的setSelected()
希望您传递一个对动态设置的控件(选择器的clientControl)的引用,因此传递null
什么都不做选择项目后,项目列表将关闭,但项目保持选中状态,pickerButton
显示所做的选择。所以,你所要做的就是这个。 this.$.pickerButton.setContent('Click to Select');
将重置pickerButton内容。
http://jsfiddle.net/scrs3Le5/1/
enyo.create({
components: [{
kind: "onyx.PickerDecorator",
name: "DecoratorName",
components: [{
name:'pickerButton',
style: 'min-height:2.5rem;min-width:330px;',
content: "Click to Select"
}, {
kind: 'onyx.Picker',
name: 'PickerName',
components: [
{content: "Is broken"},
{content: "Is not cool"},
{content: "Is very very very very very very very cool!"}
]
}]
}, {
kind: 'Button',
ontap: 'ResetPicker',
content: 'ResetPicker'
}],
ResetPicker: function () {
//this.$.PickerName.setSelected(null);
this.$.pickerButton.setContent('Click to Select');
},
rendered: function () {
this.inherited(arguments);
}
}).renderInto(document.body);
希望有所帮助!