我正在尝试用backbone.js实现一些代码
和hogan.js (http://twitter.github.com/hogan.js/)
Hogan.js是针对胡子测试开发的,
因此,对模板有效的所有内容,如
这里指定的,也是hogan.js的情况。
我的问题是把Backbone.Collection传给霍根/胡须。
对于这样一个简单的模板:
{{name}}霍根/小胡子期待这样的东西工作得很好:
{"name":"How Bizarre","artist":"OMC"}然而,我的Backbone.Collection是:
a)
[{"name":"How Bizarre","artist":"OMC"}]或者这个:
( b) {“名称”:“多么怪异”,“艺术家”:“OMC”},{“名称”:“性康复”,“艺术家”:“Marvin Gaye"}
在演示页面http://mustache.github.com/#demo中,我不能
迭代a)或b) Backbone.Collection服从over。
有人能指出我是怎么做到的吗?
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()));谢谢。
发布于 2012-07-06 22:15:32
看起来你是在把一个集合传递给霍根,而不是一个单独的模型。
试一试:
_.each(myAlbum,function(album) {
this.el.append(template.render(album.toJSON()));
});发布于 2012-07-31 18:38:53
我遇到了同样的困境,在一个主干集合上使用了Hogan模板。
var o = {},
c = Album.toJSON();
o.data = c;
this.$el.html(template.render(o));在我的模板中,我引用{{#数据}{{/data}来迭代集合。
发布于 2013-06-06 23:52:47
我取消了主干网的渲染呼叫
Backbone.Marionette.Renderer.render = (template, data) ->
HoganTemplates[template].render data很适合木偶。不过,与backbone.forms有问题。
https://stackoverflow.com/questions/8792490
复制相似问题