Невозможно получить доступ к атрибуту после выборки - PullRequest
1 голос
/ 28 ноября 2011

Я тестирую некоторый код в моей веб-консоли (используя 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) показано следующее: enter image description here

Однако, console.log(@user.get("facebook_id")) показывает undefined.

Я вижу, что user имеет атрибут facebook_id. Как мне получить его значение?

Ответы [ 2 ]

3 голосов
/ 28 ноября 2011

Это похоже на временную проблему, хотя и нечетную. 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.

0 голосов
/ 28 ноября 2011

Похоже, что facebook_id является свойством атрибута объекта @user. Если это так, я думаю, что будет работать следующее:

@user.attributes.facebook_id
...