0

次のように、ストア内のレコードを繰り返し処理しています。

Ext.create('Ext.data.Store', {
    model: 'Message',
    storeId: 'Staging',
    proxy: {
        type: 'memory',
        reader: {
            type: 'json'
        }
    },
    listeners: {
        add: function(store, records, index, eOpts){
            if (!Ext.data.StoreManager.lookup('Historical').isLoading()) {

                this.each(function(item, index, count) {
                    if(item.notificationType === 'INBOX'){
                        // populate inbox store
                        // increment the unread inbox count
                        console.log('inbox');
                    } else if (item.notificationType === 'NOTIFICATION') {
                        // populate notifications store
                        // increment the unread notification count
                    }
                });

                // no historical data should be held in memory for performance
                this.removeAll();

            }  
        }
    }   
}); 

item.notificationTypeプロパティは undefined を返します

他のプロパティを試しましたが、それらも未定義を返します。

さまざまなタイプに遭遇したときにさまざまなアクションを実行する必要があり、これでうまくいくと思いました!

したがって、アイテムは、次のように構造内に json を含むストア内のレコードです。

   {
      "source":"2",
      "target":"1416529",
      "sourceType":"USER",
      "redirectUrl":null,
      "message":"cow's go...",
      "id":606,
      "targetType":"TEAM",
      "messageType":"TIBRR_WALL_MESSAGE",
      "notificationType":"INBOX",
      "sentDate":1356599137173,
      "parameters":null,
      "targetId":"1416529",
      "sourceId":"2",
      "dispatched":true,
      "read":false,
      "readDate":null,
      "dispatchedDate":1356599137377
   }
4

1 に答える 1

1

モデル定義を投稿していないので、モデルに「notificationType」という名前のフィールドがあると想定しています。

その場合は、getメソッドを使用することをお勧めします。

item.get('notificationType');
于 2012-12-28T19:55:27.230 に答える