我有一些代碼,它曾經工作正常,現在它不再。我有一組結果,顯示在GridPanel中,我有一個文本框來過濾結果。當輸入超過3個字母時,它將相應地過濾顯示結果。 在文本字段中有一個監聽器會響應輸入的值。一旦輸入內容,它會觸發以下命令:Javascript/ExtJS:Ext.getCmp('')導致TypeError ...不是函數
grid = Ext.getCmp('shopGrid');
console.log(grid);
store = grid.getStore();
console.log(store);
if (strLen >= 3) {
store.filter('NAME', input, true, false);
} else {
store.clearFilter();
store.load();
}
我已經添加console.log()以查看發生了什麼。我把網格放到控制檯中,它是一個包含各種元素的對象,只是我所期望的。它沒有任何毛病,但終止與錯誤消息: 「TypeError:Ext.getCmp(...)。getStore不是一個函數」
我以前遇到過這種錯誤消息,但我不完全理解它試圖告訴我什麼,因爲我對JavaScript內部工作的理解是相當有限的。在ExtJS中,getStore()函數僅爲GridPanels定義。我的問題可能是getCmp()爲我提供了一個標準對象而不是GridPanel?但是,Javascript中只有一種類型的對象,對吧?不管怎樣,我使用的是Ext版本3.4.1。任何幫助或提示將不勝感激。
哦,該死的。該getView()不應該在那裏,我已經拿出了我的例子。我正在嘗試不同的功能,看看它是否與此相關。我嘗試了與您發佈的完全相同的內容,只是使用了Ext.getCmp('shopGrid');但它會導致同樣的問題。它有一個網格對象存儲在'網格'變量中,但是當我試圖獲得商店時,我會得到相同的錯誤消息。 – user2660930
在這種情況下,請給出'shopGrid'定義的代碼。如果'shopGrid'是一個有效的'GridPanel','getStore'應該可以工作,並且沒有其他的組件'shopGrid' – kevhender