Backbone - получение данных JSON из API - PullRequest
3 голосов
/ 28 декабря 2011

В эти последние дни я играю с Backbone ..

Я хочу получить некоторые данные из API поиска в Твиттере. Но я не очень понимаю, как это работает. Это мой код:

(function($){

Tweet = Backbone.Model.extend();

Tweets = Backbone.Collection.extend(
    {
        model: Tweet,

        url: 'http://search.twitter.com/search.json?q=Hamburg&rpp=5&lang=all&callback=?',
        parse: function(response)
        {
            return response.results;
        }
    });

DefaultTweetView = Backbone.View.extend(
    {
        initialize: function(){
          _.bindAll(this, 'render');
     }

        template: _.template('<p>@<%= from_user %> <em></em></p><p><%= text %></p><p><%= location %></p>'),
        render: function()
        {

            $(this.el).html(this.template(this.model.toJSON()));
            return this;
        }
    });
app = new Tweet();
})(jQuery);

Не думаю, что это может быть правильно. Но я не знаю, как с этим справиться :( Может кто-нибудь помочь мне или опубликовать ссылку, где я мог бы следовать некоторым инструкциям о данных JSON и магистрали, пожалуйста?

1 Ответ

12 голосов
/ 29 декабря 2011

Expications

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

Вы не можете получить доступ к API Twitter без перезаписи метода Backbone.sync (проблема той же политики происхождения: http://en.wikipedia.org/wiki/Same_origin_policy,, решение уже размещено здесь: Результаты BackJone Collection jsonp ajax не генерируют модель правильно )

На мой взгляд, лучше всего изучить Backbone JS, чтобы понять, как работает код, и помочь вам, документация Backbone JS находится здесь: http://documentcloud.github.com/backbone/

Пример

Я создал рабочий jsFiddle с вашим кодом здесь: http://jsfiddle.net/Atinux/v4K6A/

Таким образом, вы сможете лучше понять Backbone JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...