viezel / napp.alloy.adapter.restapi

RestAPI Sync Adapter for Titanium Alloy Framework
197 stars 102 forks source link

App crashes on fetch #21

Open dottodot opened 10 years ago

dottodot commented 10 years ago

Not too sure is this issue is for here but thought I'd start her anyway.

When my app launches it immediately crashes and closes with no error.

Model

exports.definition = {  
    config: {
        "URL": "http://www.example.com/api/events",
        "debug": 1, 
        "adapter": {
            "type": "restapi",
            "collection_name": "plugevents",
            "idAttribute": "nid"
        },
    },      
    extendModel: function(Model) {      
        _.extend(Model.prototype, {});
        return Model;
    },  
    extendCollection: function(Collection) {        
        _.extend(Collection.prototype, {});
        return Collection;
    }       
};

Fetch Collection

var collection = Alloy.createCollection("plugevents"); //or model
collection.fetch({ 
    success : function(){  
         Ti.API.info(collection.models);    
        _.each(collection.models, function(element, index, list){

        });
    },
    error : function(){
        Ti.API.error("hmm - this is not good!");
    }
});

If I remove

Ti.API.info(collection.models); 
``
the app doesn't crash.
chiefupstart commented 10 years ago

I'm having the same issue. App crashes on fetch when I do...

_.each(collection.models, function(element, index, list){
    Ti.API.info(element);
});

I'm just trying to figure out how to access my data in 'element'.

If I remove the Ti.API.info, the app does not crash.

nuno commented 10 years ago

What about: Ti.API.info(JSON.stringify(element)); ?

chiefupstart commented 10 years ago

Ti.API.info(JSON.stringify(element)); will not crash the app and I can see my data.

What's odd is that I can get element.id (the id generated by restapi.js) but I cannot access any other data in my JSON. element.LibraryCategoriesTitle, for example, just returns .

chiefupstart commented 10 years ago

Ah, I figured it out by reading https://developer.appcelerator.com/question/153642/empty-collection-after-fetch.

It's element.attributes['LibraryCategoriesTitle'].

Sheesh!

dottodot commented 10 years ago

Thanks, it was due to not using JSON.stringify