【问题标题】:How to add insert a value into a picker in Sencha Touch?如何在 Sencha Touch 的选择器中添加插入值?
【发布时间】:2012-03-23 14:31:46
【问题描述】:

我正在寻找一种将“空”值插入从商店检索其数据的选择器的方法。该值应在从商店返回的任何其他值之前添加。我试图像这样覆盖“getRange”方法:

Ext.define('UK.store.Locations', {
    extend: 'Ext.data.Store',

    requires: [
        'Ext.data.proxy.JsonP'
    ],

    config: {
        model: 'UK.model.Location',
        autoLoad: true,

        proxy: {
            type: 'jsonp',
            limitParam: false,
            startParam: false,
            url: 'http://my.url.com/locations.php',
            reader: {
                type: 'json',
                rootProperty: 'location'
            }
        }
    },

    getRange : function(startIndex, endIndex) {
        var records = this.callParent(startIndex, endIndex);
        var empty = Ext.create('UK.model.Location', 'All');
        records.unshift(empty);
        return records;
    }

});

但该值始终显示在选择器数据的末尾。有没有其他方法可以做到这一点,也许通过覆盖一些选择器方法?

【问题讨论】:

    标签: sencha-touch picker


    【解决方案1】:

    使用数据存储的data 配置并将一个空的“”记录添加到数组中。因此,此数据将已添加到存储中,并且下一组将附加到它。

    你也可以使用store的setData()函数,增加一条记录。然后加载商店而不是自动加载。

    【讨论】:

    • 不幸的是,它不像您建议的那样工作。如果我只是在 store 中设置 data: 属性,它总是会被覆盖。覆盖 setData 函数也不起作用,因为它没有被选取器调用。我试图覆盖 store 的 load 方法,但无法向 store 的 getData() 方法返回的数据集合插入任何值..
    • 然后你可以只使用Ajax请求,获取数据,然后使用setData函数加载数据。这样你可以先添加空数据,然后再设置其他数据。
    • 这可以工作,但奇怪的是这样一个简单的任务不能更容易地完成..
    猜你喜欢
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多