0

我正在开发一个backbone.marionette 演示,用于在项目视图上实现集合。但它没有正确渲染。我创建了演示,其中视图在我将集合传递给它之后没有呈现。

 var view2 = new MyItemsView({
        collection: options.collection
    });
app.mainRegion.show(view2); 

这是 jsfiddle: http: //jsfiddle.net/kslagdive/t9WWC/ 我该怎么做呢..?

4

2 回答 2

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

于 2013-07-16T14:11:34.047 回答
0

Use CompositeView or CollectionView instead.

var template = _.template($('#some-template').html());
var MyItemView = Marionette.ItemView.extend({
    tagName: 'li',
    template: template
});

var MyItemsView = Marionette.CollectionView.extend({
    tagName: 'ul',
    itemView: MyItemView
});

And template:

<script id="some-template" type="text/html">
    <%- title %>
</script>
于 2013-07-16T13:00:16.763 回答