Мне сложно понять подменю с помощью Backbone и пытаюсь научиться их использовать.Backbone Sub-View для списка
Я хочу создать простой неупорядоченный список, используя основной вид контейнера и под-просмотр для каждого элемента списка.
Вот Fiddle к тому, что я в настоящее время: http://jsfiddle.net/LrZrJ/
Вот HTML я хочу видеть в конце:
<div class="js-container">
<h3>Stat = ok</h3>
<ul>
<li>Hello world</li>
</ul>
</div>
Вот мой JavaScript:
var TheModel = Backbone.Model.extend({
default: {
photos: '',
stat: ''
}
});
var TheCollection = Backbone.Collection.extend({
model: TheModel,
url: 'http://api.flickr.com/services/rest/?page=1&api_key=a2978e5ce30c337e3b639172d3e1a0d1&tags=candy&method=flickr.photos.search&per_page=3&format=json&jsoncallback=?'
});
// The main view
var List = Backbone.View.extend({
el: '.js-container',
initialize: function() {
this.collection = new TheCollection();
this.item = new ListItem();
return this;
},
render: function() {
var self = this;
this.collection.fetch({
dataType: 'jsonp',
success: function (data) {
var listTemplate = _.template($('#listContainer').html(), {
collection: self.collection.toJSON()
});
self.$el.html(listTemplate);
self.$el.html(self.item.render());
}
});
return this;
}
});
var ListItem = Backbone.View.extend({
render: function() {
var itemTemplate = _.template($('#item').html(), {});
return itemTemplate;
}
});
var myList= new List();
myList.render();
Вот мой HTML:
<script type="text/template" id="listContainer">
<h3>Stat = <%- collection[0].stat %></h3>
<ul>
</ul>
</script>
<script type="text/template" id="item">
<li>Hello world</li>
</script>
<div class="js-container">
</div>
Это именно то, что я ищу. Спасибо! Я делал что-то, что содержал все в одном представлении, но считал, что было бы неплохо иметь под-представления, чтобы разбить его. Я видел, что jQuery .html() переписывал первый шаблон, но зациклился на том, как его преодолеть. Спасибо! – Mdd