Backbone Collection jsonp ajax结果无法正确生成模型

时间:2011-12-08 11:15:55

标签: backbone.js jsonp

http://jsfiddle.net/nf8NM/3/

这是我第一次涉足Backbone,我只想尝试从Dribbble获取一个Api调用。

我正在尝试以Backbone-native的方式做到这一点。然而,它似乎在制作收藏品时做了一些有趣的事情。

我对此实际呈现并不感到困扰,我只是希望使用Api的每个响应的模型正确设置集合。

任何暗示和方向都会很棒。我完全做错了吗?

1 个答案:

答案 0 :(得分:15)

不确定您的问题是什么。重写一下你的集合类以分离关注点,我得到完全有效的模型。

Shot = Backbone.Model.extend({
    initialize:function(opts) {
        console.log("init shot : "+opts.id);
    }
});
ShotsList = Backbone.Collection.extend({
    model: Shot,
    sync: function(method, model, options) {
        var params = _.extend({
            type: 'GET',
            dataType: 'jsonp',
            url: model.url(),
            processData: false
        }, options);

        return $.ajax(params);
    },
    parse: function(response) {
        return response.shots;
    },

    url: function() {
        return "http://api.dribbble.com/players/" + encodeURIComponent(this.player) + "/shots?per_page=18";
    }
});

s=new ShotsList();
s.bind("reset",function(collection) {
    console.log(collection.models);
    console.log(collection.pluck("image_teaser_url"));
});
s.player="jordan";
s.fetch();