从Backbone中的数组渲染所有项目

时间:2014-01-31 06:47:16

标签: javascript backbone.js

我正在编写一个Backbone应用程序,用户可以在其中搜索视频游戏。

以下代码返回用户使用搜索字段输入的随机游戏。例如,如果用户搜索Mario,它会列出API中前5个马里奥游戏中的一个。

$.getJSON(url, function(data){
  var games = data.results
  var game = games[Math.floor(Math.random() * 5)];
  var content = self.game_template({game: game});
  self.$el.append(content);
  $('.main-game').css("display", "block");
});

我希望当用户搜索特定标题时,它会渲染每个游戏。因此,当用户搜索马里奥时,所有马里奥游戏都会呈现。游戏在一个数组中,所以如果我说var game = games;,Chrome检查器会返回Object,其中包含许多其他对象,即游戏。

1 个答案:

答案 0 :(得分:0)

如果您正在构建Backbone应用程序,请使用Backbone部件。您的代码中只有jQuery ...

您应该使用包含游戏模型的Backbone Collection来存储您的数据(例如参见Backbone: Create collection from JSON)。如果您有一系列游戏,可以使用filter方法获取所需的游戏列表

var marioGames = myCollection.filter(function(game){
  return game.get("name").indexOf("Mario") >= 0;
});

marioGames现在将成为其name媒体中包含“Mario”字样的游戏集合。