我正在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"))
显示undefined
。我看到
user
具有facebook_id
属性。我如何获取它的价值? 最佳答案
尽管看起来很奇怪,但这似乎是一个时机问题。 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
完成之后。