2012-10-18 5 views
2

Ext.Data.Store가 있습니다. 그리고 나는 상점이로드 될 때 한 번 호출해야하는 함수가 있습니다. 한번만.Extjs 스토어 관련 문제

function invokeMe() { 
alert("!"); 
} 

actionTemplateStore.on('load', function() { 
    invokeMe(); 
} 

그러나이 솔루션 ISIN 한 가지 문제 : 정말 "invokeMe"α- 함수

답변

1
actionTemplateStore.on('load', function() { 
    if (!actionTemplateStore.actionInvoked) { 
     invokeMe(); 
     actionTemplateStore.actionInvoked = true; 
    } 
} 

업데이트을 : {: 진정한 단일} 옵션을 로이드가 언급 한 바와 같이, 당신은 또한 사용할 수 있습니다.

actionTemplateStore.on('load', yourFunction, {single:true}); 
+0

감사합니다. 그것은 작동 =) –

+0

위대한, upvote하는 것을 잊지 마세요! – mik

+0

필요가 없을 때 속성 및 조건부 논리를 추가하고 있습니다. 이벤트 리스너는 아래에서 자세히 설명한대로 단일 실행 구성을 지원합니다. – Lloyd

0

invoce 한 번해야 할이 시도 :

function invokeMe() { 
alert("!"); 
} 

actionTemplateStore.on('load',function() { 
    invokeMe(); 
},this,{single: true}); 

우리는 this 전달 은 우선은 내가 이런 짓을 범위와 설정 객체를 single: true으로 설정하면 한 번만 실행됩니다.

또한이 작업을 수행 할 수 있습니다 :

var onLoad = function(store) { 
    alert('!'); 
    store.un('load',onLoad); 
} 

actionTemplateStore.on('load',onLoad);