2017-01-12 1 views
0

Mein Speicher in Render-Funktion erstellt, dass ein Aufruf ausgelöst wird, aber meine Anforderung Aufruf sollte bedingt ausgelöst werden, aber speichern Instanz sollte immer erstellen.Wie Feueranruf zu beschränken, wenn das Geschäft erstellen

Für diese Anforderung I in Funktion macht für erstellen Speicher folgenden Code verwenden,

Ext.create('mypage.store.customTreeGridStore', { 
    storeId: 'myStore', 
    proxy: { 
     type: 'rest', 
     startParam: undefined, 
     filterParam: undefined, 
     sortParam: undefined, 
     paramsAsJson: true, 
     limitParam: 'pageSize', 
     pageParam: 'pageNo', 
     restService: 'rest', 
     restOperation: 'getOperation', 
     url: me.urlparams, 
     autoLoad: true, 

     actionMethods: { 
      read: 'POST' 
     } 
    } 
}); 

und ich habe Zuhörer im Speicher hinzugefügt

beforeload: function(store, operation, eOpts) { 
    return booleanFlag; 
} 

Wenn das Laden der Seite ist, könnte ich beforeLoad boolean flag erhalten false und während der Aufruf der Seitenauffrischung nicht ausgelöst wird, sondern die Store-Instanz erfolgreich erstellt wurde, , aber ich habe ein Textfeld, in dem ich nach Rasterdatensätzen suche. Wenn ich irgendeinen Text in der Textbox suche, konnte ich keine Aufzeichnung im Raster erhalten.

Aber sobald BooleanFlag wahr ist, kann ich das Ergebnis im Grid erfolgreich suchen. Was ist der beste Weg, um dieses Problem zu lösen?

Antwort

0

In Ihrem Geschäft ist autoLoad auf "true" gesetzt. Um zu verhindern, dass der Informationsspeicher ständig automatisch geladen wird, wird das autoLoad mithilfe des beastload -Ereignisses gestoppt. Ist diese Einschätzung richtig?

Wie wäre es, statt

Ext.create('mypage.store.customTreeGridStore', { 
    proxy:{ 
     autoLoad: true, 
    }, 
    listeners:{ 
     beforeload: function(store, operation, eOpts) { 
      return booleanFlag; 
     } 
    } 
}) 

autoload zu entfernen und den Speicher nach der Erstellung Laden nur bei Bedarf?

var store = Ext.create('mypage.store.customTreeGridStore', { 
    proxy:{ 
     autoLoad: false, 
    } 
}); 
if(booleanFlag) store.load(); 
+1

Warum wird die _autoLoad_-Konfiguration auf dem Proxy angegeben? Ist es nicht eine Store-Konfiguration? – scebotari66

Verwandte Themen