集合未显示在页面上

时间:2017-08-10 09:37:19

标签: javascript backbone.js marionette

我无法显示我的收藏品。 我的后端有一个REST控制器' / cars'以及页面上的这个JS代码

var Cars = Backbone.Collection.extend({
    url: '/cars'
});
var myChildV = Marionette.View.extend({
    template: '#myV',
});
var myCollectionV = Marionette.CollectionView.extend({
    collection: new Cars(),
    childView: myChildV,
});
var collectionV = new myCollectionV();
collectionV.render();

但它在页面上没有显示任何内容。 模板放在执行js之前,看起来像

<script id="myV" type="x-template/underscore">
    <h1><% items.name %></h1>
    <h2><% items.price %></h2>
</script>

我试过阅读一些指南,新手入门书,但都提供了没有REST控制器的示例。 如何显示模型集合?

2 个答案:

答案 0 :(得分:1)

文档说:

  

CollectionView将循环遍历指定集合中的所有模型,使用指定的childView呈现每个模型,然后将子视图的结果附加到集合视图中<。 / p>

您的代码中存在一些问题:

  1. 显然你的收藏是空的。所以没有可以渲染的模型。您既不在客户端添加模型,也不从服务器端获取模型

  2. 您的视图位于内存中,它与实际DOM无关,如果您想在网页中看到它,则需要将其附加到DOM。

答案 1 :(得分:0)

Your CollectionView does not know where the rendered content should be appended to. Try adding an "el : 'body'" attribute onto it.