0

该项目使用 Rails + Backbone-on-rails。我已经尝试过这个&那个......但我仍然无法在响应回调中设置全局变量。这是我试图做的:
1)在同一个地方初始化变量主干被初始化

$(document).ready ->
  window.current_user = null
  Notes.initialize()

2)设置回调

  authorize: ->
    jQuery.ajax(
      type: 'POST'
      url: '/api/sessions.json'
      wait: true
      data:
        email: @get('email')
        password:  @get('password')
    ).success( (response) ->
      exports = this
      exports.current_user = response
      window.current_user = response
      `window.current_user = response`

3)最后执行这个方法:

loginUser: (e)->
    e.preventDefault()
    if !@validateField('password') && !@validateField('email')
      return false
    @model.attributes  = @readAttributes()
    @$('#errors').text()
    @model.authorize() # call a method defined above
    console.warn window.current_user
    if window.current_user
      @$('#errors').text('You\'ve successfuly logged in ' )
    else
      @$('#errors').text('Wrong email/password!')

的输出console.warn window.current_usernull
我应该如何使用这个全局变量?
PS。服务器的响应是正确的。

4

1 回答 1

0

仅通过将 1) 更改为

$(document).ready ->
  window.current_user =
    name: ""
    company: ""
    created_at: ""
    email: ""
    facebook: ""
    id: ""
    license_id: ""
    linkedin: ""
    password_digest: ""
    phone: ""
    title: ""
    twitter: ""
    updated_at: ""
    web: ""
  Notes.initialize()  

还没找到其他方法...

于 2013-03-27T14:38:35.883 回答