Cuando defina su modelo, debe proporcionar la asociación necesaria con los modelos anidados. Desde entonces, no ha proporcionado su código. Aquí está un ejemplo:
Mi Modelo del producto:
Product = Ext.define('Product',{
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'int'},
{name: 'user_id', type: 'int'},
{name: 'name', type: 'string'},
{name: 'price', type: 'float'}
],
proxy: {
type: 'localstorage',
id: 'products'
}
});
Mi Modelo de Usuario:
User = Ext.define('User',{
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'int'},
{name: 'name', type: 'string'},
{name: 'gender', type: 'string'},
{name: 'username', type: 'string'}
],
associations: [
{type: 'hasMany', model: 'Product', name: 'products'}
],
proxy: {
type: 'localstorage',
id : 'users'
}
});
Ahora, si tiene una instancia de modelo de usuario con los productos. Aquí es cómo se puede acceder a los productos:
var productStore = user.products();
Tenga en cuenta que user.products()
devuelve un Ext.data.Store
. Ahora puede recorrer o filtrar o encontrar su registro de producto. Así es como obtuve el nombre de mi primer producto:
productStore.getAt(0).get('name');
Querido Abdel, ¿qué ocurre si queremos hacer un panel de red anidado sin una segunda solicitud del servidor? ¿Es posible con este método? –
Hola Oğuz Çelikdemir, no estoy seguro de cómo lo necesitas ¿Puedes explicar si quieres expandir una fila o algo así? –
@Ogur puede obtener datos anidados en un json y especificar "associatedKey" en hasMany Definion para su asociación. –