2013-01-17 29 views
5

Bu kod bloğu çalışır JsonStore + "tanımsız yöntemi 'indexOf' Aranamıyor" sorun oluştuğu yerleştirin: yanlış bir şey yapıyorExtJS 4.1.1a: Proxy + url =

enter image description here

Am?

constructor: function(config) { 
    config = Ext.apply({ 
     proxy: { 
      type : 'ajax', 
      reader: 'json', 
      writer: 'json' 
     } 
    }, config); 
    this.callParent([config]); 
} 

Pratik mağaza kendi yapılandırma geçersiz kılar:

cevap

4

JsonStore Eğer JsonStore kaynağına bakacak olursak

görürsünüz ... biraz ExtJs kütüphanesinde kırmızı bölgenin olduğu .

Dürüst olmak gerekirse, neden 'u Ext.data.Store numaralı telefondan tercih edersiniz? Json, tasarım açısından okuyucudan daha çok şey - bir mağaza sadece kayıtları depolar.

Uygulamalarımda yalnızca Ext.data.Store ve Ext.data.TreeStore kullanıyorum.

+0

Derleyici ve MVC özelliklerini almak için kısa bir süre önce 4.1.0'dan 4.1.1'e geçtim. Önleme sürümü ile bu kod doğruydu. Açıkladığın için teşekkürler, şimdi iyiyim. – leaf

+0

JSON Mağaza berbat! Bu anlamsızlıktan bir gün boşa harcadım. Eski sürümlerde iyi çalışıyordu – hop

1

İlk depo yapılandırmasında URL'nin ayarlanmaması nedeniyle JsonP deposuyla Ext JS 4.2.1'de benzer bir sorun yaşıyordum. Başarıyla geçen URL'yi yüklemek

myStore.load({ url: 'json.php' }); 

bunu neden ama aynı zamanda sahip olduğunuz aynı hata ve yığın izleme var ve veriler asla: Ben yükleme sırasında bunu geçen dinamik URL'yi yaratıyordu aslında görüntülendi (yalnızca Chrome Geliştirici Araçları'nı kullanarak görebiliyorum). Aşağıdaki kodu kullanarak sorunu çözüldü:

myStore.proxy.url = 'json.php'; 
myStore.load(); 

Bence tam olarak aynı şeyi yapmıyor biliyorum ama elimizdeki hataları yani umarım doğru yönde bu can en azından nokta aynıdır. Sonradan anlaşıldı ki

GÜNCELLEME

, mesele aslında değerlerini otomatik yükleme bir ComboBox kaynaklandı. Üzerine tıkladığımda değerleri yeniden yüklemeye çalışacaktı ve yük ({}) çağrısında URL'yi geçerek ilk kez başarıyla yüklediğim halde, proxy'yi kullanan kendi yük yöntemini kullanıyordu URL (hangisi tanımlanmamıştı). Bu nedenle proxy URL'sini ayarlamak hatayı durdurdu.

Benim için gerçek çözüm, ComboBox'ın queryMode yapılandırmasını local olarak ayarlayarak otomatik yükleme işleminin engellenmesiydi.

+0

Üzgünüm ama içeriği hatırlamıyorum, bu sorundan bu yana çok zaman geçti. Neyse, katkınız için teşekkürler, bu kesinlikle birine yardımcı olabilir. – leaf