Модели Backbone.js не в коллекции
Будучи новым для Backbone.js, просто хотел прояснить правильный способ решения этой простой задачи.
Разработка веб-приложения, почти всегда, будет иметь учетные записи пользователей, в которых пользователи могут войти в ваше приложение и просмотреть свои персонализированные данные. Как правило, на их странице могут отображаться некоторые виджеты, их пользовательская информация (имя, аватар и т.д.).
Теперь создание модели для виджета и объединение их в коллекцию - это простая концепция. Однако будет ли их информация о пользователе храниться в особой модели, которая не будет отделена от коллекции?
Если да, то как это связано с остальной частью приложения? Простите мое невежество, но мне еще не удалось найти примеры, которые не объясняют Модели, не использующие их в Коллекциях (Пользователь и Пользователи, Собака, Кошка и Животные и т.д.).
В любом случае, извините за длительное объяснение. Я бы искал любые ресурсы, чтобы заставить меня начать делать приложение реального мира, а не приложение ToDo (что отлично подходит для понимания базового понятия).
Ответы
Ответ 1
Нет никаких причин чувствовать себя вынужденными объявлять Collection
для каждого Model
вашего приложения. Очень часто встречаются модели без коллекции.
// code simplified and not tested
App.CurrentUser = Backbone.Model.extend({
url: "http://myapp.com/session.json"
});
App.CurrentUserView = Backbone.View.extend({
el: "#user-info",
render: function(){
this.$el.html( "<h1>" + this.model.get( "name" ) + "</h1>" );
}
});
var currentUser = new App.CurrentUser();
currentUser.fetch();
var currentUserView = new App.CurrentUserView()({ model: currentUser });
currentUserView.render();
Ответ 2
Если вы хотите модель/представление без коллекции, не пишите коллекцию или коллекцию.
Добавьте представление так же, как вы обычно видите добавленный вид, основанный на коллекции.