【问题标题】:Mustache.js / Hogan.js with Backbone.jsMustache.js / Hogan.js 与 Backbone.js
【发布时间】:2012-01-09 17:25:24
【问题描述】:

我正在尝试使用backbone.js 实现一些代码
和 hogan.js (http://twitter.github.com/hogan.js/)

Hogan.js 是针对 mustache 测试套件开发的,
所以所有适用于模板的东西
此处指定,hogan.js 也是如此。

我的问题是将 Backbone.Collection 传递给 Hogan/Mustache。

对于像这样的简单模板:

{{name}}

Hogan/Mustache 期待这样的事情可以正常工作:

{"name":"How Bizarre","artist":"OMC"}

但是我的 Backbone.Collection 是:

a)
[{"name":"How Bizarre","artist":"OMC"}]

或者这个:

b) [{"name":"How Bizarre","artist":"OMC"}, {"name":"Sexual Healing","artist":"Marvin Gaye"}]

来自演示页面http://mustache.github.com/#demo 我不能
迭代 a) 或 b) Backbone.Collection 对象。

谁能指出我该怎么做?

var Song = Backbone.Model.extend({
defaults: {
name: "Not specified",
artist: "Not specified"
}
});

var Album = Backbone.Collection.extend({
model: Song
});

var song1 = new Song({ name: "How Bizarre", artist: "OMC" });
var song2 = new Song({ name: "Sexual Healing", artist: "Marvin Gaye" });

var myAlbum = new Album;

myAlbum.add(song1);
myAlbum.add(song2);

我试图通过传递我的 Backbone.Colleciton 来进行渲染 像这样的对象:myAlbum.toJSON()

var template = "{{name}}!";

var template = Hogan.compile(template);

this.el.html(template.render(myAlbum.toJSON()));

谢谢。

【问题讨论】:

  • 我想我没问题。变种东西 = {}; stuff.items = myAlbum 这让我可以: {{#items}} {{name}} {{/items}} {"items":[ {"name":"How Bizarre" ,"artist":"OMC"}, {"name":"Sexual Healing","artist":"Marvin Gaye"} ]}

标签: backbone.js mustache


【解决方案1】:

看起来您正在向 Hogan 传递一个集合,而不是一个单独的模型。

试试这个:

_.each(myAlbum,function(album) {
    this.el.append(template.render(album.toJSON()));
});

【讨论】:

    【解决方案2】:

    我遇到了同样的困境,在 Backbone 集合上使用 Hogan 模板。

    var o = {},
    c = Album.toJSON();
    o.data = c;
    this.$el.html(template.render(o));
    

    在我的模板中,我引用 {{#data}} {{/data}} 来遍历集合。

    【讨论】:

      【解决方案3】:

      我覆盖了主干渲染调用

      Backbone.Marionette.Renderer.render = (template, data) ->
        HoganTemplates[template].render data
      

      与木偶配合得很好。但是,backbone.forms 有问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-22
        • 2013-08-21
        • 1970-01-01
        • 2012-04-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多