0

我想显示图像列表及其各自的评论。喜欢:

Image url                    | Format        | Comments
http://example.com/img.jpg   | 1280x420      | [Comment 1], [Comment 2] ...show all  ...show all  
http://example.com/img2.jpg  | 630x590       | [Comment 1], [Comment 2] ...show all  

我有两个资源:/images 和 /comments/{image_id}

获取每个图像的评论以便能够在同一行上显示它们的推荐方法是什么?Marionette 有帮手吗?

4

3 回答 3

0

据我所知,木偶没有这样的帮手。我认为您可以使用简单的方法,例如:

var ImageComments = Backbone.Collection.extend({
  initialize: function(models, options) {
    options || (options = {});
    this.imageId = options.imageId;
    Backbone.Collection.prototype.initialize.apply(this, arguments);
  },

  urlRoot: function() {
    return 'comments/' + this.imageId;
  }
});

var id = 1,
    image = new Image({ id: id }),
    comments = new ImageComments(null, { imageId: id });

$.when(image.fetch(), comments.fetch()).done(function() {
  // .. do your things with image & comments 
});

这描述了简单的情况,如果这在您的应用程序中常用,您可能想要实现自己的 fetch 方法(例如,对于图像,它也会获取评论)或使用像Backbone-relationalBackbone-associations这样的插件

于 2013-08-04T13:52:46.200 回答
0

您可以使用嵌套的复合视图。

http://davidsulc.com/blog/2013/02/03/tutorial-nested-views-using-backbone-marionettes-compositeview/

您还可以在模板循环中为评论做老式的

http://www.headspring.com/an-underscore-templates-primer/

于 2013-08-04T15:50:26.867 回答
0

在我看来,这些看起来是使用关系模型的好地方。Backbone 不支持这些开箱即用,因此您需要一个插件。看看Backbone-Relationalsupermodel.js。这些项目提供了比默认实现更好的模型嵌套形式。从那里,使用嵌套的复合视图来呈现集合。

于 2013-08-05T05:40:09.807 回答