理解coffeescript函数范围并返回对象类 - 同时尝试获取JSON

时间:2014-06-13 21:44:06

标签: coffeescript

我希望有一些函数getTagsDict()可用于扩展范围,它将负责向服务器发送一些GET请求并返回字典,然后可以在循环中轻松地加入:

for k,v of getTagsDict()

现在下面的代码返回一些js crap(或者至少对于js-newbie):http://i.imgur.com/A3YtobD.png

getTagsDict = () ->
    $.get '/notifications/ajax_avalaible_search_tags/', (data) ->
        data
$ ->
    $('#ajax_search_input').on 'keyup', (e) ->
        for k,v of getTagsDict()
            console.log "#{k} and #{v}"

但是当在调用方法内部进行GET时,一切运行良好:

$ ->
    $('#ajax_search_input').on 'keyup', (e) ->
        $.get '/notifications/ajax_avalaible_search_tags/', (data) ->
            for k,v of data
                console.log "#{k} and #{v}"

问题:我应该如何将咖啡的功能用于全球并按照描述使用?

1 个答案:

答案 0 :(得分:0)

线索是使用异步ajax调用构建getTagsDict函数。它可以看起来像这样:

getTagsDict = ->

  strReturn = ""

  jQuery.ajax
    async: false
    url: "/notifications/ajax_avalaible_search_tags/"
    success: (data) ->
      strReturn = data

  strReturn