Jbp ajax в Backbone Collection не правильно генерирует модель - PullRequest
2 голосов
/ 08 декабря 2011

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

Это мой первый набег в Backbone, и я просто пытаюсь получить вызов Api из Dribbble.

Я пытаюсь сделать это самым родным способом Backbone.Тем не менее, кажется, что он делает что-то смешное в момент создания коллекции.

Меня не очень беспокоит фактическое рендеринг в данный момент, я просто хочу, чтобы коллекция была правильно настроена с моделью для каждого из ответов.от Api.

Любые намеки и указания будут великолепны.Я полностью делаю все это неправильно?

1 Ответ

15 голосов
/ 08 декабря 2011

Не уверен, в чем ваша проблема. Переписав немного свой класс коллекции, чтобы разделить проблемы, я получаю совершенно корректные модели.

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();
...