Я использую магистраль js для своего проекта, где я отображаю вид, подобный этому ---
var View1 = Backbone.View.extend({
el: "#container",
initialize: function (){
this.render();
},
render: function(){
var parent = this;
$.get('http://localhost:8080/pages/task.jsp').done(function (data){
parent.$el.html(data);
var view = new ViewTask1()
})
}
});
Внутри задачи. jsp, у меня есть шаблон, который я буду sh оказывать отдельно. Файл выглядит примерно так:
<ul class="list-group">
<li class="list-group-item">Dapibus ac facilisis in</li>
<li class="list-group-item list-group-item-primary">A simple primary list group item</li>
</ul>
<div id="abc"></div>
<script type="text/template" id="task-card-template">
<div class="card" style="width: 18rem;">
<img class="card-img-top" src="..." alt="Card image cap">
<div class="card-body">
<h5 class="card-title">Card title</h5>
<p class="card-text">Some quick example text.</p>
<a href="#" class="btn btn-primary">Go somewhere</a>
</div>
</div>
</script>
Затем я вставляю некоторые данные в коллекцию, сопоставляю коллекцию с моделью и пытаюсь отобразить этот шаблон следующим образом:
//Create Task View
var TaskView = Backbone.View.extend({
initialize : function() {
this.render();
},
template: _.template($('#task-card-template').html()),
render: function() {
this.$el.html(this.template(this.model.attributes));
return this;
}
});
var ViewTask1 = Backbone.View.extend({
el : "#abc",
initialize : function() {
this.render();
},
render : function() {
this.$el.html('');
Tasks.each(function(model) {
var task = new TaskView({
model : model
});
this.$el.append(task.render().el);
}.bind(this));
return this;
},
});
Все же я получаю сообщение об ошибке: TypeError: Невозможно прочитать свойство 'replace' из undefined в Function.h.template из нижнего подчеркивания js. Сначала я подумал, что, возможно, jsp не загружен или View1 не отображается перед вызовом представлений шаблона (ViewTask), но, как я уже проверял, он вызывается после полной визуализации JSP. Мой вопрос: как мне загрузить шаблоны из представлений?