获取后无法访问属性

发布于 2024-12-18 18:38:27 字数 516 浏览 0 评论 0原文

我正在我的 Web 控制台中测试一些代码(使用 coffescript)

@user = new Onethingaday.Models.User()
@user.url= "/users/#{current_user.get('nickname')}.json?id_type=nickname"
@user.fetch()
console.log(@user)
console.log(@user.get("facebook_id"))

console.log(@user) 行显示以下内容: 在此处输入图像描述

但是,console.log(@user.get("facebook_id")) 显示未定义

我看到 user 具有 facebook_id 属性。我如何检索它的值?

I am testing some code in my web console (using coffescript)

@user = new Onethingaday.Models.User()
@user.url= "/users/#{current_user.get('nickname')}.json?id_type=nickname"
@user.fetch()
console.log(@user)
console.log(@user.get("facebook_id"))

The console.log(@user) line shows the following:
enter image description here

However, console.log(@user.get("facebook_id")) shows undefined.

I see that user has the facebook_id attribute. How do I retrieve the value of it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦归所梦 2024-12-25 18:38:28

这看起来像是一个时间问题,尽管很奇怪。 fetch 是异步的;在尝试访问任何属性之前,您需要等待其 success 回调被调用。

试试这个:

@user.fetch success: =>
  console.log(@user)
  console.log(@user.get("facebook_id"))

令人困惑的是,第一个 console.log 会显示 user.attributes.facebook_id 存在,而第二个则不会,但 console.log > 在 Webkit 的实现中本身是异步的,所以发生的情况是 @user.get 调用立即(同步)解析,而第一个 console.log 中的对象检查代码> 正在解决稍后 - fetch 完成后。

This looks like a timing issue, albeit an odd one. fetch is asynchronous; you need to wait until its success callback is called before trying to access any attributes.

Try this:

@user.fetch success: =>
  console.log(@user)
  console.log(@user.get("facebook_id"))

It's confusing that the first console.log would show user.attributes.facebook_id existing and the second wouldn't, but console.log is itself asynchronous in Webkit's implementation, so what's going on is that the @user.get call is being resolved immediately (synchronously), whereas the object inspection in the first console.log is resolving later—after the fetch completed.

一影成城 2024-12-25 18:38:28

看起来facebook_id是@user对象的attributes属性的一个属性。如果是这样的话,我认为以下方法会起作用:

@user.attributes.facebook_id

It looks like facebook_id is a property of the attributes property of the @user object. If that's the case, I'd think the following would work:

@user.attributes.facebook_id
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文