标签: coffeescript

在 NodeJS 中使用 Zlib 对文件进行 Gzip 压缩

我正在尝试为小型 javascript 库编写一个简单的 Cakefile 构建脚本。我想对源字符串进行 gzip 压缩并将结果写入文件。这是我到目前为止所拥有的:

zlib.deflate minifiedjavaScriptSource, (error, buffer) ->
    fs.writeFileSync(javascript_destination_gzipped_minified_path, buffer)
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时,它.gz按预期生成了一个文件。但是,当我解压缩该文件时,我得到一个.cpgz文件。如果我尝试解压缩它,它只会再次生成原始文件。我究竟做错了什么?

zlib node.js coffeescript cakefile

3
推荐指数
1
解决办法
3942
查看次数

用于并行加载依赖数据源的Coffeescript/Javascript设计模式

我有两个(缓慢加载)数据源.我可以在加载后立即开始处理数据源2,但是需要来自1和2的数据来处理来自源1的数据.所以我有一些代码如下:

$.get 'url2', (data2) ->
    $.get 'url1', (data1) ->
        # do stuff with data1 and data2
    # do stuff with data2
Run Code Online (Sandbox Code Playgroud)

但是,我想并行加载它们,而不是顺序加载它们(即我不想在开始加载数据源1之前等待数据源2加载).

有没有很好的设计模式呢?

javascript jquery design-patterns asynchronous coffeescript

2
推荐指数
1
解决办法
643
查看次数

CoffeeScript列表理解/数组理解

CoffeeScript列表推导与Pythons略有不同......这些是人们喜欢返回列表推导的方式?

return elem+1 for elem in [1,2,3] # returns 3+1
return [elem+1 for elem in [1,2,3]].pop() # returns [2,3,4]
return (elem+1 for elem in [1,2,3]) # returns [2,3,4]
Run Code Online (Sandbox Code Playgroud)

在Python中,我只想写:

return [elem+1 for elem in [1,2,3]]
Run Code Online (Sandbox Code Playgroud)

并且它正确地返回列表,而不是列表列表,就像在CoffeeScript中一样.

coffeescript

2
推荐指数
1
解决办法
978
查看次数

如何在Rails 3.1中要求/ app/assets/javascripts的子目录

我想在我的Rails 3.1应用程序中将我的javascripts分成单独的子目录.

例如,我在/ app/assets/javascripts中有一个/ modules目录

要么需要目录的所有内容,要么单独要求每个文件的方法都会有所帮助.

编辑:为了澄清,我想从我的application.js coffeescript文件中执行此操作.

assets ruby-on-rails coffeescript ruby-on-rails-3.1

2
推荐指数
1
解决办法
3471
查看次数

Backbone.js fetch()ajax错误

我正在为一个项目组建一个基本的CRUD系统,我们决定捆绑Backbone.js和CoffeeScript来抽象更多我们的JavaScript功能.学习曲线对我来说非常陡峭,因为我不是一个JS专业人士.

目前,我只是想拉一记.任何记录.因此,在我前进之前,我已经装配了一条虚拟路线,通过JSON提供"产品"记录集,以了解它是如何呈现的.

  window.Product = Backbone.Model.extend
    initialize: -> console.log this
  window.Products = Backbone.Collection.extend
    model: Product
    initialize: -> console.log this
    url: '/dummy'
Run Code Online (Sandbox Code Playgroud)

所以,在控制台中,我输入:

product = new Product()
Run Code Online (Sandbox Code Playgroud)

它似乎使产品很好.但是当我键入:

product.fetch()
Run Code Online (Sandbox Code Playgroud)

它返回:

TypeError: Cannot call method 'ajax' of undefined
Run Code Online (Sandbox Code Playgroud)

我和Collection尝试过同样的事情.

products = new Products()
products.fetch()
TypeError: Cannot call method 'ajax' of undefined
Run Code Online (Sandbox Code Playgroud)

我已经使其他部分(查看渲染等)工作得很好,但这个ajax错误反复出现在我身上.我花了几个小时查看不同的文档(包括官方文档,以及我可以从wiki中查找的所有信息),在纯JavaScript和CoffeeScript中尝试代码,实现不同的范围(有/没有窗口命名空间)等等.谷歌上没有任何东西.

这一定是我应该知道的非常简单的事情,但我无法弄清楚我的生活.或者它是我错过的文档中的一个位置.谁能告诉我我做错了什么?

coffeescript backbone.js ruby-on-rails-3

2
推荐指数
1
解决办法
1491
查看次数

在CoffeeScript中解析参数和匿名函数

如何将此功能转换为兼容coffeescript的版本?

我的主要问题是fb.login ..但是我尝试我似乎总是失去其中一个参数或权限......

function promptLogin(login_level, callback)
{
    var cbk = callback;

    FB.login(function(response) {
        if (response.session) {
            if (response.perms) {
                cbk( true, response );
            } else {
                cbk( false, response );
                //showAlert( "Please accept the permissions.", 'Error' );
            }
        } else {
            cbk( false, response );
            //showAlert( "Please accept the permissions.", 'Error' );
        }
        }, {perms:'email,publish_stream'}
    );
}
Run Code Online (Sandbox Code Playgroud)

最感谢......

加雷思

编辑

感谢下面的所有答案,有些工作没有,有些导致我其他问题.

我已经确定了解决方案的混合搭配:

login: (permissions = '', callback) ->
    responseHandler = (response) ->

        if response.session
            if permissions && permissions != '' …
Run Code Online (Sandbox Code Playgroud)

javascript facebook coffeescript

2
推荐指数
1
解决办法
4196
查看次数

在Bookmarklet中使用jQuery UI

在CoffeeScript中,虽然此代码几乎与JavaScript相同:

tabs_html = "<div id='nm-container'><ul><li><a href='#tabs-1'>Guidelines</a></li><li><a href='#tabs-2'>Test</a></li></ul>
            <div id='tabs-1'><p>something1</p></div><div id='tabs-2'><p>something2</p></div></div>"
$("#nm-toolbar").append(tabs_html)
$("#nm-container").tabs()
Run Code Online (Sandbox Code Playgroud)

它不起作用.有趣的是,它在尝试最后一行时起作用:$("#nm-container").tabs()从控制台.我附上下面的完整代码.请注意,我正在使用CoffeeMarklet生成似乎仅适用于chrome的bookmarklet.

s1 = window.document.createElement('script')
s1.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js'
window.document.body.appendChild(s1)

$ ->

    s2 = window.document.createElement('script')
    s2.src = 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js'
    window.document.body.appendChild(s2)

    jqueryUIcss = window.document.createElement('link')
    jqueryUIcss.rel = 'stylesheet'
    jqueryUIcss.type = 'text/css'
    jqueryUIcss.href = 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/themes/blitzer/jquery-ui.css'
    window.document.head.appendChild(jqueryUIcss)

    if $("#nm-toolbar").length == 0
        toolbar = "<div id='nm-toolbar'></div>"
        $("body").append(toolbar)
        $("#nm-toolbar").css({
            'background':               '#fafafa',
            'height':                   '500px',
            'width':                    '400px',
            'position':                 'fixed',
            'bottom':                   '0px',
            'right':                    '20px',
            'padding':                  '5px'
        })

        tabs_html = "<div id='nm-container'><ul><li><a href='#tabs-1'>Guidelines</a></li><li><a href='#tabs-2'>Test</a></li></ul>
            <div id='tabs-1'><p>something1</p></div><div id='tabs-2'><p>something2</p></div></div>" …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-ui bookmarklet coffeescript

2
推荐指数
1
解决办法
1412
查看次数

在Rails 3.1中从html调用javascript函数

在rails 3.1中使用coffeescript,jQuery和链轮,将coffeescript文件编译为以下块:

(function() {
 var a;
 var b;
 var c;
 foo = function() { 
  alert("foo");
 }
 bar = function() {
  alert("bar");
 }

}).call(this);
Run Code Online (Sandbox Code Playgroud)

这似乎将函数foo和bar移出了全局范围,因此bar可以由foo调用,但不能从html代码中调用。当我尝试从select onchange元素调用foo时,出现“找不到变量:foo”。

现在的解决方法是将所有全局可用的功能移至.js文件。但是,这样做的正确方法是什么?

谢谢

javascript jquery coffeescript ruby-on-rails-3.1 sprockets

2
推荐指数
1
解决办法
848
查看次数

如何在Windows上使用Cygwin将咖啡脚本模块包含在节点中

我正在尝试在node.js中获得CoffeeScript.compile的功能.

我在Windows中安装了Cygwin节点,并用npm安装了咖啡脚本.

我可以使用咖啡命令,但如果我尝试

require("coffee-script");
Run Code Online (Sandbox Code Playgroud)

我在节点中找到"无法找到模块'咖啡脚本'".

我是以错误的方式来做这件事的吗?

cygwin node.js coffeescript

2
推荐指数
1
解决办法
3047
查看次数

未传递的coffeescript默认参数未分配给与arg同名的外部变量

任何人都可以解释为什么这不起作用?我只是在CoffeeScript页面的"立即尝试Coffeescript"的情况下运行它,我的Chrome控制台记录了"nope",如下所示

x = true
foo = (x = x) ->
  console.log if x then "works" else "nope"
foo() # "nope"
Run Code Online (Sandbox Code Playgroud)

如果我在参数定义中将x = true更改为y = true而将(x = x)更改为(x = y)

太感谢了!

javascript coffeescript

2
推荐指数
1
解决办法
2798
查看次数