Backbone.js единственные модели не в коллекции - PullRequest
12 голосов
/ 22 марта 2012

Будучи новичком в Backbone.js, просто хотел уточнить правильный путь выполнения этой простой задачи.

При разработке веб-приложения почти всегда у вас будут учетные записи, с помощью которых пользователи смогут войти в ваше приложение и просмотреть свои персональные данные. Как правило, на их странице могут отображаться некоторые виджеты, их пользовательская информация (имя, аватар и т. Д.).

Теперь легко создать модель для каждого виджета и сгруппировать их в коллекцию. Однако будет ли их пользовательская информация храниться в единственной модели, которая не будет частью коллекции?

Если так, то как связано с остальной частью приложения? Простите за мое невежество, но я еще не встречал примеров, которые не объясняют моделей, не использующих их в коллекциях (пользователи и пользователи, собаки, кошки и животные и т.д.)

В любом случае, извините за подробное объяснение. Я бы искал любые ресурсы, которые позволили бы мне начать создавать приложение для реального мира, а не приложение ToDo (которое отлично подходит для понимания базовой концепции)

Ответы [ 2 ]

21 голосов
/ 22 марта 2012

Нет никаких оснований чувствовать, что вы вынуждены объявлять 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();
1 голос
/ 22 марта 2012

Если вам нужна модель / представление без коллекции, не пишите представление коллекции или сбора.

Добавьте представление так же, как обычно вы добавляете представление на основе коллекции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...