Изучение магистрали JS в эти дни. Iam становится ниже ошибки: я действительно не понимаю, что пошло не так, поэтому, пожалуйста, ознакомьтесь с нижеприведенной ошибкой и предложите мне внести изменения в мой код.Backbone Uncaught TypeError: строка не является функцией
Uncaught TypeError: string is not a function wines.html:56
app.WineView.Backbone.View.extend.render wines.html:56
app.WinesListView.Backbone.View.extend.addOne wines.html:73
(anonymous function) underscore.js:70
h.each.h.forEach underscore.js:103
g.(anonymous function) backbone.js:966
app.WinesListView.Backbone.View.extend.addAll wines.html:69
f backbone.js:208
e.Events.trigger backbone.js:148
i.extend.reset backbone.js:770
t.success backbone.js:865
j jquery.js:3073
k.fireWith jquery.js:3185
x jquery.js:8251
(anonymous function)
Вот мой код:
<div id="header">
<input type="button" value="New Wine" />
</div>
<div id="sidebar">
<ul class="wines-list"></ul>
</div>
<div id="content">
</div>
<script type="text/template" id="wine">
<a href="#wines/<%= id %>">
<%=n ame %>
</a>
</script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min.js"></script>
<script type="text/javascript">
var app = {}
app.Wine = Backbone.Model.extend({
urlRoot: "api/wines",
defaults: {
"id": null,
"name": "",
"grapes": "",
"country": "USA",
"region": "California",
"year": "",
"description": "",
"picture": ""
}
});
app.WinesList = Backbone.Collection.extend({
model: app.Wine,
url: 'api/wines'
});
app.winesList = new app.WinesList();
app.WineView = Backbone.View.extend({
tagName: 'li',
template: $('#wine').html(),
render: function() {
this.$el.html(this.template(this.model.toJSON()));
return this;
}
});
app.WinesListView = Backbone.View.extend({
el: '#sidebar',
initialize: function() {
this.listenTo(app.winesList, 'reset', this.addAll);
app.winesList.fetch({
reset: true
});
},
addAll: function() {
app.winesList.forEach(this.addOne, this);
},
addOne: function(wine) {
wineView = new app.WineView({
model: wine
});
$('.wines-list').append(wineView.render().el);
}
});
app.winesListView = new app.WinesListView();
</script>
Я уже искал в гугле эту ошибку, но не понял, в моем случае.
Спасибо! Я забыл поставить _.template – user3815806
, этот ответ не имеет большого смысла теперь, когда вы удалили часть кода из своего вопроса, который я ссылаюсь. Для людей, читающих это после того, как это не будет более полезно, если они не смогут определить исходную ошибку. – Quince