使用Sencha项目进行生产构建后的奇怪行为

时间:2015-01-26 08:22:56

标签: javascript extjs sencha-touch-2 sencha-cmd

在使用Sencha CMD进行生产构建之后,我遇到了一个奇怪的行为。我在localhost上运行的开发工作正常,但在构建后,searchfield不起作用,一切正常,除了这个组件。我已经测试了所有,但我对这个问题没有任何线索。

问题在于此代码

/* On Key Up of Search Partners*/
onSearchPartnersKeyUp: function (searchField, pressed) {
    var queryString = searchField.getValue();
    var store = Ext.getStore('Partners');
    store.clearFilter();
    pressed = this.getPartnerSegment().getPressedButtons(); //get reference to the segmentedButton
    var contacttype = pressed[0].contactTypeBtn;
    if (queryString && queryString.length > 2) {
        var thisRegEx = new RegExp(queryString, "i");
        store.filterBy(function (record) {
            if ((thisRegEx.test(record.get('id')) || thisRegEx.test(record.get('name')))
                && ((record.get('contacttype') == contacttype)
                || (pressed[0].getItemId() == 'showAllPartners'))) {
                this.getPartnerList().getScrollable().getScroller().scrollTo(0, 0);
                return true;
            }

            return false;
        }, this);
    }

    store.filter('contacttype', contacttype);

},

也许,在第二个“if”中,当sencha cmd最小化时有任何混淆.. ??¿?¿

在视图中我有这段代码:

items        : [
                        {
                            xtype      : 'typeButton',
                            itemId     : 'showOnlyPartners',
                            contactTypeBtn: 'CU',
                            iconCls    : 'user',
                            iconMask   : true,
                            text       : Cicero.Text.getText('P_BTN_PARTNERS')
                        },
                        {
                            xtype      : 'typeButton',
                            itemId     : 'showOnlyOutlets',
                            contactTypeBtn: 'OU',
                            iconCls    : 'outlet',
                            iconMask   : true,
                            text       : Cicero.Text.getText('P_BTN_OUTLETS')
                        },
                        {
                            xtype      : 'typeButton',
                            itemId     : 'showAllPartners',
                            contactTypeBtn: '',
                            pressed    : true,
                            text       : Cicero.Text.getText('P_BTN_ALL')
                        }
                    ]

提前谢谢。

1 个答案:

答案 0 :(得分:1)

解决了,问题是:

contactTypeBtn不是Sencha的属性,在我的localhost中并不关心并且它正常工作但是在构建之后,Sencha需要找到这个“属性”,当然Sencha找不到它。解决方案正在覆盖添加此属性的按钮类。

例如:

Ext.define('xr.utility.TypeButton', {
   extend: 'Ext.Button',
   xtype : 'typeButton',

   config: {
    contactTypeBtn: ''
   }
});

这是一个非常棘手的问题。