2014-11-18 3 views
1

json 파일을 사용하여 저장할 데이터를로드하려고합니다. 그러나 getCount는 0.Store와 asset.json이 같은 폴더에 있음을 반환합니다. 어떤 변화가 필요합니까? 모델에 대한Extjs store.getCount()는 0을 반환합니다.

코드 :

Ext.define('Nm.model.analysis.Asset', { 

    extend: 'Ext.data.Model', 
    requires: [ 
       'Ext.data.Field' 
      ], 
    fields: [ 
       { 
        name: 'assetType', 
        type: 'string' 
       }, 
       { 
        name: 'referenceNo', 
        type: 'string' 
       }, 
        { 
        name: 'action', 
        type: 'int' 
       } 
       ] 
    }); 

스토어 내가 만들려고 오전 :

var store = Ext.create('Ext.data.Store', { 
    model: 'Nm.model.analysis.Asset', 
    proxy: { 
     type: 'rest', 
     url : 'asset.json', 
     reader: { 
      type: 'json', 
      rootProperty: 'assets' 
     } 
     }, 
     listeners : { 
     load : function(store) { 
      alert('getcount from listener '+store.getCount()); 
     } 
    } 
}); 

store.load(); 
alert("getcount="+store.getCount()); 

데이터를 asset.json

{ 
    "assets" : [ 
       { 
        "assetType" : 'hello', 
        "referenceNo" : 'refNo.1', 
        "action" : 2 
       }, 
       { 
        "assetType" : 'new', 
        "referenceNo" : 'refNo.2' 
       } 
    ] 
} 
+0

시도 :'getTotalCount을()'. 결과가 무엇인지 확인하십시오. –

+0

URL을 '/asset.json'으로 바꿀 수 있습니까? –

+0

저장소로드 함수에 중단 점을 넣고 저장소에 실제 데이터가 있는지 여부를 확인하십시오. 데이터가 있으면 그 값이 반환되어야합니다. – Sreek521

답변

5

이 유효 코드입니다. 여기는 fiddle입니다. 상점을로드 한 후에 store.getCount()으로 전화를 걸 었는지 확인해야합니다. store.load는 비동기입니다!는 ... 그래서 store.load();을하고 다음 console.log(store.getCount()); 결코> 청취자의 0을 사용하여 선언적 또는 다른 종류의 인쇄려고하지 않습니다 :

listeners: { 
    load: function(store, records, successful) { 
     Ext.Msg.alert('Store count A', 'count: ' + store.getCount()); 
    } 
} 

또는

store.on('load', function(store, records, successful){ 
    Ext.Msg.alert('Store count A', 'count: ' + store.getCount()); 
}); 

store.load(); 
+0

감사! Siesta에서 같은 코드를 실행하여 나를 도와주십시오. StartTest (function (t) { 'your code here'})에 코드를 삽입 해 보았습니다. – Ankita

관련 문제