2017-08-10 73 views
0

我无法使我的集合显示。 我有一个REST控制器在我的后端“/车”,并在页面集合不在页面上显示

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代码,但它显示页面上什么都没有。 放置JS之前的模板被执行,看起来像

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

我试着读了一些指南,新手介绍的书,但所有提供的例子不休息控制器。 我应该怎么做才能显示一组模型?

+0

是的,你可以在URL属性 url:'/ cars'中看到它。或者你的意思是我应该先在页面上使用js调用.fetch()方法,并在此后显示项目? –

回答

1

文档说:

的的CollectionView将遍历所有指定集合中的机型,使用指定的childView使他们每个人,那么孩子视图的EL的结果追加到集合视图的埃尔。

出现在你的代码有几个问题:

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

  2. 你的视图在内存中,它没有任何方式连接到实际的DOM,如果你想在你的网页中看到它,你需要追加它到了DOM。

0

您的CollectionView不知道渲染内容应该附加到哪里。尝试在其上添加一个“el:'body'”属性。