2

Я только начал использовать Spine.js, и это действительно приятно для пользователя. Кто-нибудь знает, обрабатывает ли Spine связанные объекты с ответа сервера? пример ниже. Если это так - отлично - если нет? то любые предложения о том, как это сделать, были бы замечательными! БлагодаряSpine JS Model: Как 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}] }}

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

ответ

0

Проверьте связь.js, которая поставляется с позвоночником. 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.

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

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

+0

Чтобы просто разъяснить SpoBo, если моя модель пользователя получает один объект ответа, содержащий объекты пользователя и друга, Spine будет обновлять как User, так и Модели друзей с соответствующими данными? а затем, когда модель User обновляется через Spine Ajax, отправит ли он и объекты пользователя и друзей на сервер в одном запросе? –

+0

, если моя модель пользователя получает один объект ответа, содержащий объекты пользователя и друга, Spine будет обновлять как модели User, так и Friend с соответствующими данными. Spine делает это по умолчанию yes. когда модель пользователя обновляется через Spine Ajax, отправит ли он и объекты пользователя и друзей на сервер в одном запросе? - Я так не думаю. По крайней мере, я не мог заставить его работать. Вместо этого y сервер использует вложенные маршруты для обновления друзей один за другим, и я внес некоторые изменения в Spine, чтобы разрешить этот рабочий процесс. Но скажи мне. Почему вы используете пользовательский объект? – SpoBo

+0

И это работает, если ответ сервера находится в формате выше (см. Оригинальный вопрос)? Модели вопросов являются теоретическими, хотя я действительно работаю с пользовательским объектом, большинство из них отделяются некоторыми, и я не создавал API. Спасибо за вашу помощь. Btw –