我正在开发一个backbone.marionette演示,用于在项目视图上实现集合。 但它没有正确渲染。我创建了一个demo,在我将集合传递给它之后,视图没有渲染。
var view2 = new MyItemsView({
collection: options.collection
});
app.mainRegion.show(view2);
这是jsfiddle:http://jsfiddle.net/kslagdive/t9WWC/ 我怎么能这样做..?
答案 0 :(得分:1)
以下是您要执行的操作的示例:http://jsfiddle.net/dfYm2/
即:
var MyItemView = Marionette.ItemView.extend({
template: '#some-template',
tagName: "li"
});
var MyItemsView = Marionette.CollectionView.extend({
itemView: MyItemView,
tagName: "ul"
});
然后
var view2 = new MyItemsView({
collection: options.collection
});
app.mainRegion.show(view2);
让Marionette迭代集合,为您渲染视图。这是它的作用。否则,没有什么动力去使用Marionette而不是简单的Backbone。
还有一个更全面的逐步介绍,在这个免费的pdf中显示Marionette的收藏:http://samples.leanpub.com/marionette-gentle-introduction-sample.pdf
答案 1 :(得分:0)
改为使用CompositeView或CollectionView。
var template = _.template($('#some-template').html());
var MyItemView = Marionette.ItemView.extend({
tagName: 'li',
template: template
});
var MyItemsView = Marionette.CollectionView.extend({
tagName: 'ul',
itemView: MyItemView
});
模板:
<script id="some-template" type="text/html">
<%- title %>
</script>