Я только начал изучать Магистраль и из того, что я видел до сих пор, когда вы создаете представление, и вы определяете имя тега и имя класса, созданное вами представление создается внутри этого элемента, t, что он работает над приведенным ниже кодом, может кто-нибудь объяснить мне почему? Я потратил слишком много времени на это, и моя голова вращается.Backbone View не создает «себя»
var app = {};
(function ($) {
app.Todo = Backbone.Model.extend({
defaults : {
name : '',
priority: '',
description: ''
}
});
app.TodoList = Backbone.Collection.extend({
model: app.Todo,
url: '#todolist'
});
app.TodoListView = Backbone.View.extend({
tagName: 'ul',
className: 'todolist',
initialize: function() {
this.template = _.template($('#todolist-template').html());
this.render();
},
render: function() {
this.$el.empty();
this.$el.append(this.template({items: this.collection.toJSON()}));
return this;
}
});
app.todoList = new app.TodoList([
new app.Todo({
name: 'unclog the sink',
priority: '10',
description: 'FIX THE SINK!!!'
}),
new app.Todo({
name: 'get bread',
priority: '0',
description: 'We are out of bread, go get some'
}),
new app.Todo({
name: 'get milk',
priority: '2',
description: 'We are out of milk, go get some'
})
]);
new app.TodoListView({el: $('#container'), collection: app.todoList});
})(jQuery);
шаблон:
<script type="text/template" id="todolist-template">
<% _.each(items, function(item){ %>
<li>
<%= item.name %>
<%= item.description %>
<%= item.priority %>
</li>
<%}); %>
</script>
результат:
<div id="container">
<li>unclog the sink FIX THE SINK!!! 10</li>
<li>get bread We are out of bread, go get some 0</li>
<li>get milk We are out of milk, go get some 2</li>
</div>
Так что мне нужно изменить сделать контейнер в 'ul' элемента? Разве нет способа вставить 'ul' внутри контейнера' div'? Потому что я мог бы использовать эту ul в несколько раз на той же странице, поэтому мне не нужно будет иметь пустые элементы ul, зависающие, ожидая, чтобы их заполнили. –
Код, который у меня есть, будет таким же. Он создаст ul и li и передаст тот html, который мы помещаем в div. –