私はバックボーンとhandlebars.jsに不慣れです。プログラムで新しいアイテムをコレクションに追加しようとしていますが、バックボーンでRenderを使用してコレクションをレンダリングしたいと思います。
私は何が間違っているのですか?
var Item = Backbone.Model.extend({
defaults: {
}
});
var List = Backbone.Collection.extend({
model: Item
});
var ListView = Backbone.View.extend({
el: $('BODY'), // el attaches to existing element
initialize: function () {
_.bindAll(this, 'render'); // every function that uses 'this' as the current object should be in here
this.collection = new List();
this.render();
},
render: function () {
var template = Handlebars.compile($('#screenshot_template').html());
$(this.el).html(template({
row: this.collection
}));
return this;
}
});
var listView = new ListView();
window.screenshots = listView;
window.screenshots.collection.add({
myurl: 'http://placehold.it/350x150'
});
私のハンドルバーテンプレートは次のようになります:
<script id="screenshot_template" type="text/x-handlebars-template">
{{#each row}}
<div><img src="{{this.myurl}}"></div>
{{/each }}
</script>