2016-07-05 4 views
1

Почему не работает фильтр и перезарядить магазин сетку ... данные вложен .. я хочу, чтобы родители использовать прокси-модель ..ExtJS вложенных сеток данных фильтра и перезарядить не работает на ViewModel

вложенной JSON данные

сервер sssssssss SSSSS

{ 
    "success": true, 
    "data": { 
     "taksitler": [ 
     { 
      "taksit_id": "13", 
      "mebla": "100.00", 
      "tarih": "2016-10-31", 
      "odeme": "1" 
     }, 
     { 
      "taksit_id": "14", 
      "mebla": "150.00", 
      "tarih": "2016-10-31", 
      "odeme": "0" 
     }, 
     { 
      "taksit_id": "15", 
      "mebla": "16.00", 
      "tarih": "2016-10-31", 
      "odeme": "0" 
     }, 
     { 
      "taksit_id": "16", 
      "mebla": "14.00", 
      "tarih": "2016-10-31", 
      "odeme": "0" 
     }, 
     { 
      "taksit_id": "17", 
      "mebla": "20.00", 
      "tarih": "2016-10-31", 
      "odeme": "0" 
     } 
     ] 
    } 
} 

model.plan.Plan

Ext.define('Rent.model.plan.Plan', { 
    extend: 'Ext.data.Model', 

    proxy: { 
     type: 'ajax', 
     idParam: 'plan_id', 

     api: { 
      create: 'bayi/plan/create', 
      read: 'bayi/plan/read', 
      update: 'bayi/plan/update', 
      destroy: 'bayi/plan/destroy', 
     }, 

     reader:{ 
      type:'json', 
      rootProperty: 'data' 
     }, 

     writer: { 
      encode: true, 
      writeAllFields: true, 
      rootProperty: 'data', 
      allDataOptions: { 
       associated: true 
      } 
     }, 

    }, 

    fields: [ 
     {name: 'plan_id', type: 'int'}, 
     {name: 'fatura_id', type: 'int'}, 
     {name: 'hesap_id', type: 'int'}, 
    ], 

    hasMany: { 
     model: 'Rent.model.plan.Taksitler', 
     name:'taksitler', 
     associationKey:'taksitler' 
    } 

}); 

model.plan.Taksitler

Ext.define('Rent.model.plan.Taksitler',{ 
    extend: 'Ext.data.Model', 

    fields: [ 
     {name: 'taksit_id', type: 'int'}, 
     {name: 'mebla', type: 'number'}, 
     {name: 'tarih', type: 'date', dateWriteFormat: 'Y-m-d'}, 
     {name: 'odeme', type: 'boolean', defaultValue: false} 
    ], 

}); 

store.plan.taksitler

Ext.define('Rent.store.plan.Taksitler', { 
    extend: 'Ext.data.Store', 

    alias: 'store.taksitler', 
    model : 'Rent.model.plan.Taksitler', 

    pageSize: 0, 

}); 

store.plan.Plan

Ext.define('Rent.store.plan.Plan', { 
    extend: 'Ext.data.Store', 

    alias: 'store.plan', 
    model : 'Rent.model.plan.Plan', 

    pageSize: 0, 

}); 

Сетка

Ext.define('Rent.view.odemeplani.OdemePlani', { 
    extend: 'Ext.window.Window', 
    defaultListenerScope: true, 

    viewModel: true, 

    items: [{ 
     xtype: 'gridpanel', 

     bind: { 
      store: '{plan.taksitler}' 
     }, 

     columns: [ 
      { 
       text: 'ID', 
       dataIndex: 'taksit_id', 
       hidden: true 
      }, 
      { 
       xtype: 'numbercolumn', 
       text: 'Mebla', 
       dataIndex: 'mebla', 
       format: '0.00', 
       flex: 4, 
       resizable: false, 
       sortable: false, 
      }, 
      { 
       xtype: 'datecolumn', 
       text: 'Tarih', 
       dataIndex: 'tarih', 
       format: 'd.m.Y', 
       flex: 4, 
       resizable: false, 
      }, 
      { 
       xtype: 'booleancolumn', 
       text: 'Ödeme', 
       dataIndex: 'odeme', 
       trueText: 'Yapıldı', 
       falseText: 'Yapılmadı' 
      } 
     ], 
    }], 

    tbar: [ 
     { 
      text: 'Yenile', 
      iconCls: 'icon-yenile-16', 
      handler: 'yenile' 
     }, 
    ], 

    // events 

    yenile: function(){ 
     this.down('grid').store.reload(); 
     // fail : 
     // GET http://localhost/Rent.model.plan.Taksitler?_dc=1467681109503 
     // 404 (Not Found) ???? Why doesn't parent's proxy 
    }, 

    // ~ events 

    constructor: function(config) { 
     this.callParent(arguments); 

     this.getViewModel().linkTo('plan', { 
      type: 'Rent.model.plan.Plan', 
      id: config.id 
     }); 

    }, 


}); 

ответ

0

вы должны поставить массив непосредственно в данных, becau се вы объявляете его как корень, так что JSON должен быть таким:

JSON:

{ 
"success": true, 
"data": [{ 
    "taksit_id": "13", 
    "mebla": "100.00", 
    "tarih": "2016-10-31", 
    "odeme": "1" 
}, { 
    "taksit_id": "14", 
    "mebla": "150.00", 
    "tarih": "2016-10-31", 
    "odeme": "0" 
}, { 
    "taksit_id": "15", 
    "mebla": "16.00", 
    "tarih": "2016-10-31", 
    "odeme": "0" 
}, { 
    "taksit_id": "16", 
    "mebla": "14.00", 
    "tarih": "2016-10-31", 
    "odeme": "0" 
}, { 
    "taksit_id": "17", 
    "mebla": "20.00", 
    "tarih": "2016-10-31", 
    "odeme": "0" 
}] 

} 
+0

Мои данные JSON работает. .. Я хочу использовать родительский прокси. .. yenile: function() { this.down ('grid'). store.reload(); // fail: // GET http: //localhost/Rent.model.plan.Taksitler? _dc = 1467681109503 // 404 (не найдено) ???? Почему нет прокси-сервера родителя }, – Mtk

Смежные вопросы