1. #1
    Sencha User
    Join Date
    Dec 2007
    Posts
    19
    Vote Rating
    0
    cbandes is on a distinguished road

      0  

    Default Unanswered: Destroy temporary store/view?

    Unanswered: Destroy temporary store/view?


    So I've become so frustrated by Sencha's data methods that I'm finding I need to populate my stores with regular ajax calls instead of Sencha methods. But that leads me to a problem - I'm creating a ton of stores that just sit around.

    Code:
    	onPeopleShow: function(view){
    		var personStore = Ext.create('SMToolkit.store.Persons');
    		var list = this.getPeople();
    		$.getJSON("index.php/api/persons",function(data){
    			$.each(data, function(k,v){
    				personStore.add(v);
    			});
    			list.setStore(personStore);
    			list.refresh();
    		});
    		$.getJSON('index.php/api/rolespersons/'+window.currentRole.data.id, function(data){
            	$.each(data, function(k,v){
            		
            	});
        	});
    	},
    In old-timey iOS, I would've called a personStore.release or something at the end of that function, to let the app know to destroy the store if nobody else was using it. But in Sencha if I destroy it now, the list loses its data - but if I don't, I lose the reference to the store since it's a local variable...

  2. #2
    Sencha - Senior Forum Manager mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    36,754
    Answers
    3462
    Vote Rating
    828
    mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute

      0  

    Default


    Why aren't you able to let the store do the loading?
    Mitchell Simoens @SenchaMitch
    Sencha Inc, Senior Forum Manager
    ________________
    Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
    https://github.com/mitchellsimoens

    Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/

    Need more help with your app? Hire Sencha Services services@sencha.com

    Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is in print!

    When posting code, please use BBCode's CODE tags.

  3. #3
    Sencha User
    Join Date
    Dec 2007
    Posts
    19
    Vote Rating
    0
    cbandes is on a distinguished road

      0  

    Default


    The Sencha stores just don't seem to work. I spent the better part of two weeks trying to use them, but they choked on the associations and didn't refresh as expected, so out of desperation I went back to jquery.

  4. #4
    Sencha - Senior Forum Manager mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    36,754
    Answers
    3462
    Vote Rating
    828
    mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute

      0  

    Default


    If you give me a sample response I'm sure I can create a store to read it.
    Mitchell Simoens @SenchaMitch
    Sencha Inc, Senior Forum Manager
    ________________
    Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
    https://github.com/mitchellsimoens

    Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/

    Need more help with your app? Hire Sencha Services services@sencha.com

    Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is in print!

    When posting code, please use BBCode's CODE tags.

  5. #5
    Sencha User
    Join Date
    Dec 2007
    Posts
    19
    Vote Rating
    0
    cbandes is on a distinguished road

      0  

    Default


    Sure!

    Here's a LIST from the rest store for Roles:

    Code:
    [{"id":"25378","name":"Francisco","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25379","name":"Bernardo","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25380","name":"Marcellus","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25381","name":"Horatio","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25382","name":"Claudius","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25383","name":"Voltimand","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25384","name":"Laertes","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25385","name":"Polonius","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25386","name":"Hamlet","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25387","name":"Gertrude","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25388","name":"Ophelia","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25389","name":"Ghost (Voice only)","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25390","name":"Reynaldo","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25391","name":"Rosencrantz","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25392","name":"Guildenstern","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25393","name":"Player King","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25394","name":"Player Queen","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25395","name":"Lucianus","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25396","name":"Fortinbras","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25397","name":"Gravedigger","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25398","name":"Priest","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25399","name":"Osric","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25400","name":"Lady in Waiting","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25401","name":"Attendant","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25402","name":"Ophelia & Gertrude","description":null,"type":null,"show_id":"2354","user_id":"5"},{"id":"25404","name":"Harry","description":"","type":"Lead","show_id":"2354","user_id":"5"}]
    Roles are associated to Persons many-to-many (here's a result from Persons):

    Code:
    [{"id":"3","first_name":"George","last_name":"Washington","email":"","address":"","phone1":"","phone2":"","thumbnail":null,"image":null,"type":"Actor","location":"","user_id":"5"},{"id":"4","first_name":"Martha","last_name":"Washington","email":"","address":"","phone1":"","phone2":"","thumbnail":null,"image":null,"type":"Actor","location":"","user_id":"5"},{"id":"5","first_name":"Thomas","last_name":"Jefferson","email":null,"address":null,"phone1":null,"phone2":null,"thumbnail":null,"image":null,"type":null,"location":null,"user_id":"5"},{"id":"8","first_name":"Walter","last_name":"Cronkite","email":"","address":"","phone1":"","phone2":"","thumbnail":null,"image":null,"type":"Actor","location":"","user_id":"5"},{"id":"9","first_name":"Larry","last_name":"Miller","email":"","address":"","phone1":"","phone2":"","thumbnail":null,"image":null,"type":"Actor","location":"","user_id":"5"},{"id":"10","first_name":"Hank","last_name":"Pym","email":"","address":"","phone1":"","phone2":"","thumbnail":null,"image":null,"type":"Actor","location":"","user_id":"5"}]
    there is a personsroles table in the db , it has three columns - person_id, role_id and user_id. the primary key is a composite person_id/role_id

    I used to have models like this:

    Code:
    Ext.define('SMToolkit.model.Person', {
        extend: 'Ext.data.Model',
        config: {
            fields: [
            	'id',
                'first_name',
    			'last_name',
    			'email',
    			'address',
    			'phone1',
    			'phone2',
    			'type',
    			'location'
            ],
            hasMany: [
            	{
            		model: 'SMToolkit.model.Person_Role_Rest',
            		name: 'role'
            	}
            ],
            proxy: {
                type: 'rest',
                url : 'index.php/api/persons'
            }
        }
        
    and
    
     Ext.define('SMToolkit.model.Role', {
         extend: 'Ext.data.Model',
     
         config: {
             fields: [
             	'id',
                 'name',
     			'description',
     			'type',
     			'show_id'
    -        ],
    -		hasMany: [
    -        	{
    -        		model: 'SMToolkit.model.Person_Role_Rest',
    -        		name: 'person'
    -        	},
    -        	{
    -        		model: 'SMToolkit.model.Scene_Role_Rest',
    -        		name: 'scene'
    -        	},
    -        	{
    -        		model: 'SMToolkit.model.Thing',
    -        		name: 'thing'
    -        	}
    -       	],
    -        proxy: {
    -            type: 'rest',
    -            url : 'index.php/api/roles'
    -        }
    -    }
     });

  6. #6
    Sencha - Senior Forum Manager mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    36,754
    Answers
    3462
    Vote Rating
    828
    mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute

      0  

    Default


    Here are my two models that I used to show how to get it to work:

    Code:
    Ext.define('City', {
        extend : 'Ext.data.Model',
    
        config : {
            fields : [
                { name : 'id', type : 'int' },
                'name',
                'description',
                'type',
                { name : 'show_id', type : 'int' },
                { name : 'user_id', type : 'int' }
            ],
    
            proxy : {
                type   : 'ajax',
                url    : 'data/json.json',
                reader : 'json'
            },
    
            hasMany : {
                model      : 'Person',
                name       : 'persons',
                foreignKey : 'user_id',
                primaryKey : 'user_id',
                autoLoad   : true
            }
        }
    });
    
    Ext.define('Person', {
        extend : 'Ext.data.Model',
    
        config : {
            fields : [
                { name : 'id', type : 'int' },
                'first_name',
                'last_name',
                'email',
                'address',
                'phone1',
                'phone2',
                'thumbnail',
                'image',
                'type',
                'location',
                { name : 'user_id', type : 'int' }
            ],
    
            proxy : {
                type   : 'ajax',
                url    : 'data/json2.json',
                reader : 'json'
            },
    
            hasMany : {
                model      : 'City',
                name       : 'cities',
                foreignKey : 'user_id',
                primaryKey : 'user_id',
                autoLoad   : true
            }
        }
    });
    Here are the stores for my test:

    Code:
    new Ext.data.Store({
        model     : 'City',
        autoLoad  : true,
        listeners : {
            load : function(store) {
                var rec     = store.getAt(0),
                    persons = rec.persons();
    
                persons.on('load', function(personsStore) {
                    console.log(personsStore.getCount() + ' Persons in this city');
                });
            }
        }
    });
    
    new Ext.data.Store({
        model     : 'Person',
        autoLoad  : true,
        listeners : {
            load : function(store) {
                var rec    = store.getAt(0),
                    cities = rec.cities();
    
                cities.on('load', function(citiesStore) {
                    console.log(citiesStore.getCount() + ' Cities for this person');
                });
            }
        }
    });
    json.json has the first JSON you provided, json2.json has the second JSON.
    Mitchell Simoens @SenchaMitch
    Sencha Inc, Senior Forum Manager
    ________________
    Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
    https://github.com/mitchellsimoens

    Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/

    Need more help with your app? Hire Sencha Services services@sencha.com

    Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is in print!

    When posting code, please use BBCode's CODE tags.

Thread Participants: 1

Turkiyenin en sevilen filmlerinin yer aldigi xnxx internet sitemiz olan ve porn sex tarzi bir site olan mobil porno izle sitemiz gercekten dillere destan bir durumda herkesin sevdigi bir site olarak tarihe gececege benziyor. Sitenin en belirgin ozelliklerinden birisi de Turkiyede gercekten kaliteli ve muntazam, duzenli porno izle siteleri olmamasidir. Bu yuzden iste. Ayrica en net goruntu kalitesine sahip adresinde yayinlanmaktadir. Mesela diğer sitelerimizden bahsedecek olursak, en iyi hd porno video arşivine sahip bir siteyiz. "The Best anal porn videos and slut anus, big asses movies set..." hd porno faketaxi