使用木偶模板的backbone.js集合视图示例
你能给我推荐一些通过木偶模板系统显示列表视图的例子吗。基本上,我有一个木偶模板,并根据该模板创建一个表列表 要使用主干木偶创建表行列表,您需要定义五件事:使用木偶模板的backbone.js集合视图示例,backbone.js,marionette,backbone.js-collections,Backbone.js,Marionette,Backbone.js Collections,你能给我推荐一些通过木偶模板系统显示列表视图的例子吗。基本上,我有一个木偶模板,并根据该模板创建一个表列表 要使用主干木偶创建表行列表,您需要定义五件事: 每行一个模型 用于保存所有行模型的集合 迭代集合的CollectionView 提供行特定功能的ItemView ItemView的模板,为每行提供标记 示例用例 假设您拥有以下数据: var stooges = [{ name: 'moe', age: 44, userid: 1}, { name: 'l
- 每行一个模型
- 用于保存所有行模型的集合
- 迭代集合的
CollectionView
- 提供行特定功能的
ItemView
的模板,为每行提供标记ItemView
var stooges = [{ name: 'moe', age: 44, userid: 1},
{ name: 'larry', age: 44, userid: 2},
{ name: 'curly', age: 44, userid: 3}];
定义模型和集合
对于以下数据,您需要一个模型:
var StoogeModel = Backbone.Model.extend({});
在这里,您可以为数据和其他属性设置一些合理的默认值,如idAttribute
。关于如何自定义模型,有很多参考资料。您的收藏至少应采用stoogeModel
var StoogeCollection = Backbone.Collection.extend({
model: StoogeModel
});
建立你的观点
要迭代集合并将其呈现到表中,您只需要一个CollectionView
和一个ItemView
var StoogesCollectionView = Backbone.Marionette.CollectionView.extend({
tagName: "table",
childView: StoogeItemView
});
所有collectionview
至少需要一个childView
,这是一个ItemView
(我们在下面定义),他们将使用该视图派生功能来为每一行创建html,以及一个collection
集合,该集合包含填充每一行的模型。我们将在安装stoogesCollectionView
时传入此集合。标记名
属性告诉主干将子项封装在表
标记中
var StoogeItemView = Backbone.Marionette.ItemView.extend({
tagName: "tr",
template: '#stooge-template'
});
<script type="text/template" id="stooge-template">
<td id="name"><%= name %></td>
<td id="age"><%= age%></td>
<td id="userid"><%= userid%></td>
</script>
这些被塑造成模型,并载入你的收藏
var myStooges = new StoogeCollection(stooges);
加速您的收藏视图
将加载的集合传递到集合视图
var myStoogesView = new StoogesCollectionView({ collection: myStooges });
呈现您的视图
所有木偶视图都附带了一个render
方法。在我们的例子中,调用
myStoogesView.render();
将创建一个
,其中包含三个
元素,每个元素都有一列,分别用于数据集中的名称
、年龄
和用户ID
字段。要在DOM中插入生成的HTML,我们只需使用视图的el
属性。为了简单起见,我们可以将视图直接注入到主体中
document.body.appendChild(myStoogesView.el);
或者使用jQuery:
$(document.body).append(myStoogesView.el);
除此之外
有很多功能我们甚至没有开始讨论。读这本书!并查看许多教程。希望这个简短的介绍能有所帮助 你是说主干模板系统吗?木偶网不实现任何特定的模板处理程序。默认情况下,主干与下划线的u.template()一起打包。Stackoverflow旨在帮助您解决实现问题,而不是设计问题。我想你的问题在Hi会更好,谢谢。我有个问题。我有一个类似这样的Json{'status'=>'Success',数据:[{'set1':'set2','set3':'set4'}]}。如何在集合模板中设置“状态”值?因为集合模板仅包含“数据”数组。我应该使用两种不同的观点吗?我不介意回答你的最后一个问题,但StackOverflow更希望你为与原始帖子没有直接关系的问题打开一个新帖子。为什么文档从来没有这么简单?非常感谢。漂亮的回答@seebiscuit@seebiscuit那个么用户是否提出了新的问题?