Я получаю 2 шаблона: один для формы и один для строка для результата. Так я и считаю. Форма отображается, но когда у меня есть строка , я получаю статический шаблон этой строки, я имею в виду, что <% = key %>
не работает и форма исчезает.Использование jQuery.load для отображения шаблона в другом шаблоне
APP.FromFront = Backbone.View.extend({
el: $("#content"),
events: {
"click #addLink" : "addLink",
"click .deleteLink" : "deleteLink"
},
template: _.template($('#content').html()),
initialize: function() {
this.bookmarks = new APP.BookmarksCollection();
this.render();
},
render: function() {
this.$el.html(this.$el.load("../../templates/form_template.html"));
this.bookmarks.each(function(bookmark) {
var bookJSON = bookmark.toJSON();
**//############ this is where it's doesn't work**
var temp=_.template(this.$el.load("../../templates/links_template.html"));
$("#links").append(temp(bookJSON));
},this);
},
})
Почему у вас есть неиспользованный шаблон: _.template ($ ('# content'). Html()), '? Почему вы пытаетесь загрузить внешний файл, а не использовать его? Вы понимаете, как работает ['load'] (http://api.jquery.com/load/)? Судя по коду, например 'this. $ el.html (this. $ El.load (url))' Я так не думаю. Вы понимаете, что наш код пытается получить один и тот же шаблон снова и снова? Хотя браузер может кэшировать его, это не очень хорошая практика. ['load'] (http://api.jquery.com/load/) является асинхронным. Сначала прочтите документацию. –
Спасибо за ответ. Я использовал шаблон «шаблон», когда мой шаблон находился на странице index.html. Он не используется в этом коде. Я действительно не хочу загружать его, но использовать его. Я знаю, как это сделать, если оно находится в index.html, но не в другом файле. – BoltMaud