Я только начал использовать Backbone (и Underscore) JS.Мы создаем большое iPad-приложение для HTML5, и оно должно работать на всей клиентской стороне.Проект нуждается в структуре, и Backbone, кажется, подходит.Кажется, он не слишком мешает и может быть использован как набор инструментов (особенно из-за необходимости в Underscore).
У меня есть один вопрос.Это приложение HTML5 в основном одностраничное приложение.Все начинается с файла index.html.Я узнал, как Backbone управляет фрагментами URL, что мне действительно нравится.Настроить маршрутизацию событий для конкретных моделей очень просто.
В этом приложении HTML5, над которым я работаю, много вложенных слоев "страниц".Существует около трех уровней вложенности.Это данные JSON, которые использует это приложение (я еще не попал в локальное хранилище баз данных и т. Д., Но, может быть, мне следует? Просто хотел сначала разобраться с Backbone).Это обычные веб-страницы, поэтому они являются просто страницами контента, загружаемого в различные части веб-приложения.
Я использую представления.Я думаю, что у меня есть концепция ... Заполните коллекцию данными, и представление построено вокруг этой коллекции данных.Я понимаю, что для отдельного экземпляра модели у него есть представление.Затем, когда вы захотите просмотреть коллекцию модели, вы можете вызвать View, который будет перебирать коллекцию, и вызывать View каждой отдельной модели.
Извините, я знаю, что, вероятно, не имеет особого смысла!
Но в основном я вижу, что базовые представления используются для генерации HTML для отдельной модели, для коллекции модели ... так что это все небольшие представления, отсортированные по различным частям страницы, но как насчет представления длявсю страницу?Скажем, у этого приложения HTML5 был базовый шаблон, но разные страницы веб-приложения нуждались в разном макете всей страницы, чтобы они могли выглядеть так, как должны?Вы можете делать такие вещи?В основном, с представлением, которое вызывает Ajax для получения всего шаблона страницы?
В приведенном ниже примере это представление, которое вызывается из основного конструктора, когда URL находится в корне приложения.Я хочу настроить различные представления, подобные этому, которые мое приложение должно будет показывать, когда пользователь находится по разным URL-адресам.Это неправильно загружать в целом шаблон Ajax, как я здесь?Какие еще есть способы иметь одностраничное приложение, но также иметь управляемые шаблоны страниц для всех разных частей сайта?
App.View.Home = Backbone.View.extend({
tagName: "article",
id: "view-home",
initialize: function() {
_.bindAll(this, "render");
},
render: function() {
var that = this;
$.get("templates/home.html", function(templateHtml) {
$(that.el).html(_.template(templateHtml));
// we want tabs in this template too
var tabs = new App.View.Tabs();
$(that.el).find('#main').html(tabs.render().el);
}, "html");
return that;
},
});
Извините, если в этом нет особого смысла ...Я пытался многому научиться.