backbone.js 在一个视图中显示多个资源

c2e8gylq  于 2022-11-10  发布在  其他
关注(0)|答案(3)|浏览(169)

我想显示一个列表的图像和他们各自的意见。像:

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

我有两个资源:/图像和/评论/{图像ID}
建议使用什么方法来获取每个图像的注解,以便能够在同一行显示它们?Marionette有帮助吗?

dced5bon

dced5bon1#

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

5f0d552i

5f0d552i2#

据我所知, puppet 没有这样的帮手。我想你可以用一些简单的东西,如:

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 
});

这里描述了一个简单的例子,如果你的应用程序中经常使用这种方法,你可能想实现你自己的获取方法(例如,对于图像,它也会获取注解)或者使用Backbone-relationalBackbone-associations之类的插件

相关问题