Так что я все еще немного новичок, когда дело доходит до Backbone, поскольку я пытался сегодня поиграться с ним, чтобы получить некоторые результаты. Проблема, с которой я сталкиваюсь, - это возможность видеть результаты из объекта коллекции json. Надеялся, что кто-нибудь может мне немного помочь и указать в правильном направлении.

Пока что моя установка такова:

var Game = Backbone.Model.extend({});

var GameList = Backbone.Collection.extend({
  model: Game,
  url: 'link to server json object',

  parse: function(response) {
    return response;
  }
});

var GameListView = Backbone.View.extend({

  el: $('#games-list'),

  initialize: function() {
    var self = this;
    this.collection = new GameList();
    this.collection.fetch().done(function() {
      self.render();
    });

  },
  render: function() {
    this.collection.each(function(game) {
      console.log('Game.', game);
    });
  }
});


var testApp = new GameListView();

Это производит в консоли:

Game. 
r {cid: "c2", attributes: Object, collection: r, _changing: false, _previousAttributes: Object…}

Я не уверен, где я ошибаюсь, хотел бы сначала увидеть объект json, а затем иметь возможность циклически перебирать каждый элемент.

0
Anks 15 Дек 2013 в 05:18
2
Вы ищете console.log('Game.',game.toJSON());?
 – 
fbynite
15 Дек 2013 в 05:21

1 ответ

Лучший ответ

Вам нужен метод toJSON(), этот метод преобразует модель из коллекции или модели Backbone в JSON, например:

var json = game.toJSON();

Этот метод очень часто используется при разработке Backbone, обычно для передачи модели в шаблон html

1
Sleiman Jneidi 15 Дек 2013 в 05:22
Как мне теперь перебрать json и создать элементы html со значением, основанным на одном из параметров json, таких как id или name?
 – 
Anks
15 Дек 2013 в 05:44
Это руководство может быть полезно codebeerstartups.com/2012/12/…. примите ответ, если он работает так, как вы сказали. @Anks
 – 
Sleiman Jneidi
15 Дек 2013 в 05:57