使用 Sencha 项目进行生产构建后的奇怪行为
Strange behavior after the production build with Sencha project
在使用 Sencha CMD 进行生产构建后,我遇到了一个奇怪的行为。我在本地主机上的开发 运行 工作正常,但构建后搜索字段不工作,一切正常,除了这个组件。我已经测试了所有,但我对这个问题没有任何线索。
问题出在这段代码中
/* 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')
}
]
提前致谢。
已解决,问题是:
contactTypeBtn 不是 Sencha 的 属性,在我的本地主机上并不关心,它工作正常但是在构建之后,Sencha 需要找到这个 "property",当然 Sencha 不会找不到它..解决方案是覆盖按钮 class 添加这个 属性.
例如:
Ext.define('xr.utility.TypeButton', {
extend: 'Ext.Button',
xtype : 'typeButton',
config: {
contactTypeBtn: ''
}
});
这是一个非常棘手的问题。
在使用 Sencha CMD 进行生产构建后,我遇到了一个奇怪的行为。我在本地主机上的开发 运行 工作正常,但构建后搜索字段不工作,一切正常,除了这个组件。我已经测试了所有,但我对这个问题没有任何线索。
问题出在这段代码中
/* 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')
}
]
提前致谢。
已解决,问题是:
contactTypeBtn 不是 Sencha 的 属性,在我的本地主机上并不关心,它工作正常但是在构建之后,Sencha 需要找到这个 "property",当然 Sencha 不会找不到它..解决方案是覆盖按钮 class 添加这个 属性.
例如:
Ext.define('xr.utility.TypeButton', {
extend: 'Ext.Button',
xtype : 'typeButton',
config: {
contactTypeBtn: ''
}
});
这是一个非常棘手的问题。