Backbone.js 使用主干呈现嵌套集合。木偶和主干。关系
我正在尝试使用Backbone.js制作一个简单的日历/待办事项列表 我收集了一些天,每个天可以有多个待办事项。 我想将每个日期呈现为一个无序列表,其中包含一个无序的待办事项列表。这是我的HTML:Backbone.js 使用主干呈现嵌套集合。木偶和主干。关系,backbone.js,marionette,backbone-relational,Backbone.js,Marionette,Backbone Relational,我正在尝试使用Backbone.js制作一个简单的日历/待办事项列表 我收集了一些天,每个天可以有多个待办事项。 我想将每个日期呈现为一个无序列表,其中包含一个无序的待办事项列表。这是我的HTML: <ul id="days-list"> <!-- #day-tpl --> </ul> <script id="day-tpl" type="tpl"> <h1>To-do for {{name}}</h1>
<ul id="days-list">
<!-- #day-tpl -->
</ul>
<script id="day-tpl" type="tpl">
<h1>To-do for {{name}}</h1>
<ul class="todos-list">
<!-- todo-tpl -->
</ul>
</script>
<script id="todo-tpl" type="tpl">
{{title}}
</script>
Day集合显示得很好(多亏了木偶!),但我不知道如何渲染每天的Todo集合。有什么想法吗?谢谢
编辑:我找到了一种方法,但我不确定这是正确的方法
我对我的DayView进行了如下编辑:
DayView = Backbone.Marionette.ItemView.extend({
tagName: 'li',
template: '#day-tpl',
onRender: function(){
var $todosList = this.$el.find('.todos-list');
var todos = new Todos(this.model.get('todos').toJSON());
var todosView = new TodosView({collection: todos, el: $todosList});
todosView.render();
}
});
它确实在正确的日期正确地呈现每个todo,但是使用jquery find和toJSON是一种代码味道。Marionette有一个CompositeView,它最适合嵌套集合。我已经包括了文档和一篇讨论如何使用它的文章
DayView = Backbone.Marionette.ItemView.extend({
tagName: 'li',
template: '#day-tpl',
onRender: function(){
var $todosList = this.$el.find('.todos-list');
var todos = new Todos(this.model.get('todos').toJSON());
var todosView = new TodosView({collection: todos, el: $todosList});
todosView.render();
}
});