【问题标题】:How to reset onyx.Picker to pre selected state如何将 onyx.Picker 重置为预选状态
【发布时间】:2015-01-31 19:41:10
【问题描述】:

我有一个 onyx.Picker,它在选择之前会显示一个“单击以选择”按钮,提示用户采取行动。正如预期的行为一样,一旦用户选择了一个选项,他们就无法恢复到“单击以选择”显示。但是,我需要能够以编程方式重置表单,在这种情况下,选择器应该再次恢复到其原始状态。

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

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

【问题讨论】:

    标签: javascript enyo


    【解决方案1】:

    据我所知,选择器上的setSelected() 希望您将其传递给您想要动态设置的控件(选择器的客户端控件)的引用,因此传递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);
    

    希望有帮助!

    【讨论】:

    • 是的,它很有帮助。但是,选择器虽然显示“单击以选择”,但实际上仍然选择了先前选择的控件。所以你仍然需要你注释掉的那行来修复那部分。
    • 我打算建议一个拉取请求来添加一个重置方法,但选择器不会保留 PickerButton 的默认内容。或许需要重组拣货员。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 2015-02-21
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多