2011-08-31 62 views
1

我有以下代码,我尝试用coffeescript编写。

$.ajax { 
    type: 'GET' 
    url: '/dashboard' 
    success: (response) -> 
    $('.loading_row').remove() 
    dataType: 'script' 
} 

每次我尝试运行此收到以下错误信息:

Assertion failed: (0 && "implement me"), function uv_fs_readlink, file src/unix/fs.c, line 613.

我可以把成功回调都在同一行解决这一点,但我想调用多个方法回调,所以这是行不通的。

$.ajax { 
    type: 'GET' 
    url: '/dashboard' 
    success: (response) -> $('.loading_row').remove() 
    dataType: 'script' 
} 
+3

你必须更多地设置它......这看起来像jQuery,但是你得到的错误来自'c'文件。所以你在Node.js下运行它,对吧?使用'$ = require'jquery''并且您正在使用[jsdom](https://github.com/tmpvar/jsdom),以使'.remove()'行有意义? –

+0

它在Rails 3.1下运行,jquery已被包含,并且该文件中的其他jquery行可以正常工作。不使用jsdom。 – Jeremy

+2

好的...所以你在编译时看到这个错误?那么ExecJS使用的JavaScript环境可能会有问题。尝试将'therubyracer'添加到您的Gemfile并运行'bundle install'。 –

回答

1

它不能,你依赖于成功回调是否在同一行或缩进定义得到不同的结果的情况。无论你给的代码片段编译完全相同的JavaScript中,逐字节:

$.ajax({ 
    type: 'GET', 
    url: '/dashboard', 
    success: function(response) { 
    return $('.loading_row').remove(); 
    }, 
    dataType: 'script' 
}); 

除非也许你正在使用CoffeeScript中的旧版本?最新版本是1.1.2。

+0

Rails 3.1中的咖啡栏宝石,所以我认为这是使用最新版本的咖啡标记。 – Jeremy