Я действительно новичок в Backbone, и я повсюду искал, чтобы попытаться понять это. В основном я понимаю, как модели, представления, коллекции и шаблоны работают вместе, но по какой-то причине я просто не могу получить свою коллекцию для рендеринга в шаблоне. Используя Firebug, я получаю "this.model неопределен"Невозможно получить шаблон для отображения с использованием backbone.js и подчеркивания
Вот мой код:
(function($) {
window.Category = Backbone.Model.extend({});
window.Categories = Backbone.Collection.extend({
url: "src/api/index.php/categories?accounts_id=1",
model: Category
});
window.categories = new Categories();
categories.fetch();
window.CategoriesView = Backbone.View.extend({
initialize:function() {
_.bindAll(this,"render");
this.model.bind("reset", this.render);
},
template:_.template($('#tpl-category').html()),
render:function (eventName) {
$(this.el).html(this.template(this.model.toJSON()));
return this;
}
});
var testTargetvar = new CategoriesView({ el: $("#collection") });
})(jQuery) ;
Это данные, что моя служба REST генерирует:
[
{
"name": "Web Design",
"id": 0
},
{
"name": "Web Development",
"id": 0
},
{
"name": "Waste Management Solutions",
"id": 0
}
]
"выборка", что Я использую показывает отображаемые данные в Firebug.
И, наконец, вот мой шаблон:
<div id="collection"></div>
<!-- Templates -->
<script type="text/template" id="tpl-category">
<span><%=name%></span>
</script>
Я проверил, что все необходимые скрипты, JQuery, позвоночник, подчеркивание и т.д. загружаются на страницу должным образом.
Хммм, ну ничего не происходит. Ошибка уходит, но я ничего не вижу и не вижу никаких действий в консоли. Я заменил «что угодно» на «Категория», которая является исходной моделью, которую я создаю. –
Я думаю, это потому, что вы пишете код, как будто у вас уже есть элемент в документе, который представляет каждую категорию, для которой вы создаете представление. Я создам пример, который поможет вам найти путь. – JMM
Спасибо. Я удалил «окно» и установил все на vars. Я взял код, который вы написали, и заменил его оригинальным «var testTargetvar = new CategoriesView ...» с ним. Еще ничего.Извините, если я буду полным болваном здесь. –