2012-02-26 71 views
0

我使用JScript的CoffeeScript。我有一个名为getVideoTitle的方法,它对api调用ajax来获取视频标题并返回提取的视频标题。但是,它正在返回一个对象,而我只想返回一个字符串。我想返回一个字符串,因为我使用的是backbone.js,并且想要启动create以在后端创建记录。如何设置从一个方法返回一个变量的XHR?

@collection.create videoid: $('#url').val(), name: @getVideoTitle($('#url').val()); 

请看一个例​​子here

我怎样才能返回string回从这个功能呢?

+0

您是否试图检查该对象?也许,它的字段中有标题? – kirilloid 2012-02-26 19:56:42

+0

是的,我已经完成了'console.log()'。有许多功能和价值存储的地方。 – Omnipresent 2012-02-26 20:14:27

回答

4

getVideoTitle是异步的,它可能会返回处理请求的XHR对象,并期待回调调用并接收结果。

因此,您需要将回调传递给它,并在创建集合之前获取结果。事情是这样的:

id = $('#url').val() 
@getVideoTitle id, (title) -> 
    @collection.create videoid: id, name: title 

相关的问题:https://stackoverflow.com/search?q=ajax+return+value

我建议你移动到的CoffeeScript之前你的JavaScript技能刷牙,否则你在崎岖不平的道路是。

+0

里卡多很对。使Ajax调用的函数无法返回Ajax调用的结果,因为一旦发送了Ajax调用,它就会返回。我有一本关于这个主题的即将出版的书,* [Async JavaScript](http://leanpub.com/asyncjs/)*。 – 2012-02-27 02:08:39

相关问题