Amostra da Associação em extjs 4.2:

Qualquer um pode por favor apontar-me para um exemplo de trabalho de associação (com hasMany e belongsTo) em ExtJS. Por favor, não me indique os documentos do Sencha ou quaisquer exemplos relacionados ao Sencha porque eu tinha tentado quase tudo, mas nenhum deles funciona...

 15
Author: CARTIC, 2013-05-10

1 answers

A correr a amostra (liga a consola do navegador):

Http://jsfiddle.net/4TSDu/52/

Ext.define('My.model.Author', {
    extend:'Ext.data.Model',
    fields:[
        'name'
    ]
});

Ext.define('My.model.Comment', {
    extend:'Ext.data.Model',
    fields:[
        'emailAddress',
        'body'
    ]
});

Ext.define('My.model.BlogPost', {
    extend:'Ext.data.Model',
    fields:[
        'title',
        'body'
    ], 
     belongsTo:[
        {
            name:'author',
            instanceName:'author',
            model:'My.model.Author',
            getterName:'getAuthor',
            setterName:'setAuthor',
            associationKey:'author'
        }
    ], 
    hasMany:[
        {
            name:'comments',
            model:'My.model.Comment',
            associationKey:'comments'
        }
    ], 
    proxy:{
        type:'ajax',
        url:'https://dl.dropboxusercontent.com/u/1015920/Ext/blog-posts.json',
        reader:{
            type:'json',
            root:'data'
        }
    }
});

My.model.BlogPost.load(1, {

    success:function(record, operation){

        console.log(record.get('title')); // "some title"

        console.log(record.getAuthor().get('name')); // "neil"

        console.log(record.comments().getCount()); // 2

    }
});

Leia mais aqui:

Http://extjs-tutorials.blogspot.ca/2012/05/extjs-belongsto-association-rules.html

Http://extjs-tutorials.blogspot.ca/2012/05/extjs-hasmany-relationships-rules.html

Os dados da amostra utilizados:

{
    "data": [
        {
            "id": 1,
            "title": "some title",
            "body": "some body",
            "author": {"id":1, "name": "neil"},
            "comments": [
                {
                    "id":55,
                    "emailAddress": "[email protected]",
                    "body": "test comment"
                },
                {
                    "id":66,
                    "emailAddress": "[email protected]",
                    "body": "another comment"
                }
            ]
        }
    ]
}
 9
Author: Neil McGuigan, 2014-05-09 17:36:26