2017-06-16 62 views
0
var grid = Ext.getCmp('grid'); 

var matcher = new RegExp(Ext.String.escapeRegex(newValue), "i"); 

是否有人可以向我解釋這些代碼行?Ext JS正則表達式和getcmp

+0

退房ExtJS的」 [API](https://docs.sencha.com/extjs/ 6.2.0/classic/Ext.html#method-getCmp)[docs](https://docs.sencha.com/extjs/6.2.0/classic/Ext.String.html#method-escapeRegex)和Mozilla的[MDN ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp) – scebotari66

回答

1

Ext.getCmp是ExtJS的一種document.getElementById()

你創建了一個元素:

Ext.create('Ext.panel.Panel',{ 
    title: 'Foo', 
    html: 'Bar', 
    id: 'mytest', 
    renderTo: document.body 
}); 

然後運行Ext.getCmp('mytest')將返回該面板的實例,所以你可以做的事情吧,比如:

var panel = Ext.getCmp('mytest'); 
test.setTitle('Hello'); 

創建一個新的正則表達式無關使用ExtJS,這是Javascript的標準方式(其中之一)來創建正則表達式(請參閱:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp)。

Ext.String.escapeRegex將格式化的方式是有效的正則表達式中使用的字符串,以便Ext.String.escapeRegex(abs-$dxjksgg)將返回abs\-\$dxjksgg

+0

謝謝兄弟:) –

+0

沒問題,請注意,設置ID和使用Ext.getCmp()是不是最好的選擇。嘗試使用'Ext.ComponenQuery.query()',以便您可以使用選擇器(如CSS選擇器)來抓取組件。 –

+0

它實際上是一個代碼onTextFieldChange:function(field,newValue,oldValue,options)var grid = Ext.getCmp('grid'); grid.store.clearFilter(); (newValue)var matcher = new RegExp(Ext.String.escapeRegex(newValue),「i」); (record.get('kod'))| gridcher.filter }); } } –