如何重置缟玛瑙.选取器到预选状态

How to reset onyx.Picker to pre selected state

本文关键字:状态 选取 何重置      更新时间:2023-09-26

我有一个缟玛瑙。选择器,在选择之前显示"单击以选择"按钮,提示用户执行操作。 按照预期行为,一旦用户选择一个选项,他们就无法恢复到"单击以选择"显示。 但是,我需要能够以编程方式重置窗体,在这种情况下,选取器应再次恢复到其原始状态。

我已经发现我可以通过调用this.$.PickerName.setSelected(null)来删除选择的选项 但是,UI 不会像预期的那样恢复为"单击以选择"显示。 如何完全重置选取器?

小提琴 : http://jsfiddle.net/trex005/2amLu1r4/

我所知,选取器上的setSelected()希望您向其传递对要动态设置的控件(选取器的客户端控件)的引用,因此传递null将无助。选择项目后,项目列表将关闭,但项目保持选中状态,pickerButton显示所做的选择。所以,你所要做的就是这个。 this.$.pickerButton.setContent('Click to Select');将重置选取器按钮内容。

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);

希望对您有所帮助!