2013-03-27 14 views
6

załadować mój sklep następująco:ExtJS Store zwrotna obciążenie problem

store.load({ 
     params:{paramMap}, 
     callback : function(records, options, success) { 
      if (success) { 
       var form = formPanel.getForm(); 
       var jsonStr = Ext.JSON.encode(records[0].raw); 
       var jsonObj = Ext.JSON.decode(jsonStr); 
       form.loadRecord(jsonObj); 
      } 
     } 
    }); 

Chodzi o to, chcę tylko to wezwanie z powrotem do ognia po raz pierwszy sklep jest załadowany. Chcę go później usunąć, aby po ponownym wczytaniu lub załadowaniu magazynu ponownie nie wywoływał tego wywołania zwrotnego.

Każdy pomysł, próbowałem uzyskać wywołania zwrotnego w opcjach konfiguracji, ale to nie wydaje się działać.

Odpowiedz

14

Niezupełnie pewny, jaki jest problem. Oddzwanianie zostanie wywołane tylko wtedy, gdy w sklepie zostanie załadowane wywołanie zwrotne.

store.load({callback:myCallback}); 
//callback will be called 
store.load(); 
//callback will not be called 

Jeśli chcesz po prostu zrobić coś, gdy chcesz użyć detektora z jednym zestawem do true. Słuchacze zamiast wywołań zwrotnych są moim preferowanym sposobem.

store.on('load', onStoreLoad, this, {single:true}); 

Argumenty funkcji wywołania zwrotnego api są nieco inne niż odbiornik ładowania, sprawdź dokumentację, którą chcesz zobaczyć.

+0

Masz rację. Zdałem sobie z tego sprawę po umieszczeniu odbiornika wstępnego w sklepie. Że faktycznie wywoływałam przeładowanie, które używa tych samych parametrów co pierwotne połączenie, które zawierało moje wywołanie zwrotne. Więc przełączam to na ładowanie wywołania. Dzięki – codemonkeyww

+0

Może być również konieczne podanie zakresu w pierwszym wywołaniu: store.load ({callback: myCallback, scope: this}); –