Модель Spine JS: Как Spine обрабатывает ответ сервера, содержащий записи для связанной модели? - PullRequest
2 голосов
/ 12 февраля 2012

Я только начал использовать Spine.js, и это действительно приятно для пользователя. Кто-нибудь знает, обрабатывает ли Spine связанные объекты из ответа сервера? пример ниже. Если это так - отлично - если нет? тогда любые предложения о том, как это сделать, будут великолепны! Спасибо

Модель

class User extends Spine.Model
  @configure 'User', 'Name'
  @hasMany 'friends', 'models/Friend'
  @extend Spine.Model.Ajax

class Friend extends Spine.Model
  @configure 'Friend', 'User_id'
  @belongsTo 'user', 'model/User'
  @extend @Local

Ответ сервера на обновление пользователя :
{"user":{"name":"John Brilliant", "friends":[{"user_id":1},{"user_id":2}] }}

Итак, когда Spine получает этот ответ, должен ли он обновить пользователя и друзей пользователей из-за связанной модели?

1 Ответ

0 голосов
/ 15 февраля 2012

Проверьте файл Relations.js, который поставляется с Spine.http://spinejs.com/docs/relations

Однако есть некоторые проблемы с вложенными ресурсами, которые я заметил (создание и обновление друзей с помощью / users / 1 / friends и т. Д.).Проверьте http://groups.google.com/group/spinejs/browse_thread/thread/6a5327cdb8afdc69?tvc=2 для получения дополнительной информации.

Если пользователь всегда будет текущим вошедшим в систему пользователем, я бы посоветовал не создавать отношения между 2. Только ваш сервер должен знать о нескольких пользователях.Ваше клиентское приложение должно предполагать, что все действия / модели / записи относятся к текущему зарегистрированному пользователю.На стороне сервера просто проверьте, вошел ли ваш пользователь в систему, и если да, верните друзей только для текущего пользователя.(иначе перенаправить на страницу входа)

Допустим, друг 3 принадлежит пользователю 2. Если пользователь 1 входит в систему и запрашивает друзей, сервер вернет только друзей 1 и 2. Если пользователь 2 вошел в систему, онверните только друга 3.

Не забудьте также использовать текущего пользователя в шоу, создавать, обновлять и удалять действия: p

Если вам нужна информация пользователя, просто выполните действиена сервере, например «/ users / current», и верните необходимую информацию.Вы можете сохранить это в модели User, которую затем сможете использовать для обновления имени пользователя и т. Д.

...