0

问题: 我正在使用 Backbone.js 在 Rails 中镜像资源丰富的模型。我正在尝试将当前用户 ID 获取到 Backbone Workshop.Models.User 模型,以便我可以通过 Rails 用户 RESTful 资源将用户保存到数据库。我无法从 Currentuser 模型中检索 id。?

当我尝试在 Backbone 中检索当前用户模型的实例的 id 时,我的返回值未定义。我可以在服务器日志上看到获取成功,如果我将本地实例输出到日志中,我可以检查对象。我什至可以使用控制台运行相同的代码并成功获取 id。它只是在运行时。

我怀疑我应该以不同的方式配置我的模型或在我的视图中绑定一些东西。帮助?

在这里查看我的要点

楷模:

# singleton model gets current user

class Workshop.Models.Currentuser extends Backbone.Model
idAttribute: '_id'
urlRoot: -> '/user/currentuser/'

# classic Rails RESTful resource

class Workshop.Models.User extends Backbone.Model
urlRoot: '/users/show'
4

1 回答 1

5

在您的要点中,您有以下代码

current_user = new Workshop.Models.Currentuser
current_user.fetch()
console.log(current_user.id)

但是, fetch 是异步的,并且id在 ajax 调用完成之前不会被填写。

试试这个(道歉,因为我的 ruby​​ 技能为零,而且我的咖啡脚本也不是很好,所以不能保证语法)

current_user.fetch({ success: -> console.log(current_user.id) });

于 2012-12-05T21:38:51.963 回答