javascript - 脊柱 JS 模型 : How does Spine handle a server response containing records for a related model?

标签 javascript model-view-controller jquery coffeescript spine.js

我才刚刚开始使用 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 收到这个响应时,它是否应该因为相关模型而更新用户和用户好友?

最佳答案

查看 Spine 附带的 relation.js。 http://spinejs.com/docs/relations

但是我注意到嵌套资源存在一些问题(使用/users/1/friends 等创建和更新 friend )。 检查http://groups.google.com/group/spinejs/browse_thread/thread/6a5327cdb8afdc69?tvc=2了解更多信息。

如果用户始终是当前登录的用户,我建议不要在两者之间创建关系。只有您的服务器需要了解多个用户。您的客户端应用程序应假定所有操作/模型/记录的范围都限于当前登录的用户。在服务器端,只需检查您的用户是否已登录,如果已登录,则只返回当前用户的好友。 (否则重定向到登录页面)

假设 friend 3 属于用户 2。如果用户 1 登录并请求 friend ,服务器将只返回 friend 1 和 2。如果用户 2 登录,它将只返回 friend 3。

不要忘记在节目中使用当前用户,创建、更新和删除操作也是如此 :p

如果您需要用户的信息,只需在服务器上执行“/users/current”之类的操作并返回您需要的信息。您可以将其存储在用户模型中,然后您可以使用它来更新用户名等。

关于javascript - 脊柱 JS 模型 : How does Spine handle a server response containing records for a related model?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9244874/

相关文章:

oop - 是否可以隐藏 Javascript 对象的原型(prototype)!这背后的奥秘是什么?

jquery - 使用 jQuery val() 更新 KnockoutJS 绑定(bind)文本框

jquery - 如何将新的键值对添加到现有对象中

javascript - 在 PHP 中创建一个具有深度和顺序列的数组

javascript - 水平步进机形式打破

ruby-on-rails - ruby on Rails 中的路由是 MVC Controller 的一部分吗?

java - Spring MVC - 使用 Poincuts 用动态数据填充 Spring MVC partials

model-view-controller - 游戏 : Who is responsible for display?

javascript - 在 Summernote 中禁用图像上传

javascript - 在 Android 上长按时禁用上下文菜单