0

ストアを使用してデータをリストにロードしようとしています。コードを実行すると、リスト値が空白になります。リストは空ではありませんが、空白です。

これが私のコントローラーの一部で、保存するデータを追加しようとしています。

  var loginStore = Ext.getStore('instance');
               var record = [{id:id, issued_at:issued, instance_url:instance, signature:sig, access_token:access, myBaseUri:baseUri}];
               loginStore.add(record);

これが私がリストを作成するビューの一部です

{
               xtype :'list',
               id : 'list1',
               loadingText: 'Loading Projects',
               emptyText: '<div>No Projects Found</div>',
               onItemDisclosure: true,
               itemTpl: '<div>{issued_at}</div>',
               height: 320,
               store : 'instance'

}

これは機能しませんがitemTpl:'<div>{issued_at}</div>'

itemTpl:'<div>{id}</div>'

うまくいくようです。私は何が間違っているのですか?

これが私の店です:

Ext.define('GS.store.instance',{
extend: 'Ext.data.Store',
requires: ['GS.model.login'],
config:{
    model: 'GS.model.login'

}
});

そして、これが私のモデルです:

Ext.define('GS.model.login',{
extend: 'Ext.data.Model',
fields:[
            {name: 'id', type: 'string'},
            {name: 'issued_at', type:'string'},
            {name: 'instance_url', type:'string'},
            {name: 'signature', type:'string'},
            {name: 'access_token', type:'string'},
            {name: 'myBaseUri', type:'string'}
      ]

});         
4

4 に答える 4

0

レコードの作成方法が間違っています。この方法を試してください:

var record = Ext.create('YOUR_MODEL', {
    id : id,
    issued_at: issued,
    instance_url: instance,
    ...
});

お役に立てれば。

于 2012-10-24T00:16:17.383 に答える
0

この例を使用して試してください。

Ext.define('Contact', {
    extend: 'Ext.data.Model',
    config: {
        fields: ['firstName', 'lastName']
    }
});

var store = Ext.create('Ext.data.Store', {
   model: 'Contact',
},

   data: [
       { firstName: 'Tommy',   lastName: 'Maintz'  },
       { firstName: 'Rob',     lastName: 'Dougan'  },
       { firstName: 'Ed',      lastName: 'Spencer' },
       { firstName: 'Jamie',   lastName: 'Avins'   },
       { firstName: 'Aaron',   lastName: 'Conran'  },
       { firstName: 'Dave',    lastName: 'Kaneda'  },
       { firstName: 'Jacky',   lastName: 'Nguyen'  },
       { firstName: 'Abraham', lastName: 'Elias'   },
       { firstName: 'Jay',     lastName: 'Robinson'},
       { firstName: 'Nigel',   lastName: 'White'   },
       { firstName: 'Don',     lastName: 'Griffin' },
       { firstName: 'Nico',    lastName: 'Ferrero' },
       { firstName: 'Jason',   lastName: 'Johnston'}
   ]
});

Ext.create('Ext.List', {
   fullscreen: true,
   itemTpl: '<div class="contact">{firstName} <strong>{lastName}</strong></div>',
   store: store,
});
于 2012-10-24T07:41:18.250 に答える
0

issue_atの代わりにidを使用するとリストに値が表示されるため、問題は関数/モデル/ストアではなく、issued_at変数自体にあるようです。それが店に届いていると確信していますか?

ストアが読み込まれたときにこれを追加するか、たとえばchromeを使用してブラウザで実行してみてください

console.log(Ext.getStore("instance").getAt(0).data.id);
console.log(Ext.getStore("instance").getAt(0).data.issued_at);

最初のデータ項目からいくつかの結果が表示されるはずです。

IDを取得したが、issued_atが「未定義」の場合は、問題がレコードにあることがわかります。issuedその場合、ストアに変数を追加して実際に定義されていることを確認する前に、変数をログに記録しようとします。

必要に応じて、さらなるヘルプ/ディスカッションのために結果を報告してください。

于 2012-10-25T12:27:22.067 に答える
0

モデル定義にconfigオプションがありませんでした。

Ext.define('GS.model.login',{
extend: 'Ext.data.Model',
config:{
    fields:[ 'id','issued_at','instance_url','signature','access_token','myBaseUri' ]
}


});         
于 2012-10-25T21:00:28.417 に答える