标签: coffeescript

包含函数的括号 - (function(){})()和`.call()`

我已经写了一段时间javascript,最近一直在玩coffeescript.我注意到coffeescript以下列方式编译函数:

(function() {

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

我也注意到人们用这种方式写函数:

(function() {

})()
Run Code Online (Sandbox Code Playgroud)

据我所知,这些是自称的匿名函数.首先,拥有.call()和仅仅().call()一种更具语义的写作方式之间的区别是什么().

另外,为什么coffeescript将整个文件包装在匿名函数中,而通常不需要?这有什么表现或其他优势吗?应该何时使用这些自调用函数?

谢谢

javascript coffeescript

0
推荐指数
1
解决办法
127
查看次数

节点不需要*.coffee文件

根据/sf/answers/333835561/,我应该能够从.js文件中获取.coffee文件:

$ echo 'console.log "works"' > module.coffee

$ echo '
> require("coffee-script")
> require("./module")
> ' > test.js

$ node test.js
works
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我在运行test.js时收到此消息:

module.js:340
    throw err;
      ^
Error: Cannot find module './module'
  at Function.Module._resolveFilename (module.js:338:15)
  at Function.Module._load (module.js:280:25)
  at Module.require (module.js:364:17)
  at require (module.js:380:17)
  at Object.<anonymous> (/Users/jose/Desktop/pedo/test.js:2:1)
  at Module._compile (module.js:456:26)
  at Object.Module._extensions..js (module.js:474:10)
  at Module.load (module.js:356:32)
  at Function.Module._load (module.js:312:12)
  at Function.Module.runMain (module.js:497:10)
  at startup (node.js:119:16)
  at node.js:902:3
Run Code Online (Sandbox Code Playgroud)

我正在使用NVM安装Node 0.10.25.还使用使用NPM 1.3.24安装的CoffeeScript 1.7.1.

require node.js coffeescript

0
推荐指数
1
解决办法
820
查看次数

在chrome检查器中快速导入库

有没有从js/coffee控制台导入库的快捷方法?现在,每次我需要使用库时,我都会注入一个脚本元素,将cdn链接到我的DOM,如下所示:

var jq = document.createElement('script');
jq.src = "//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
Run Code Online (Sandbox Code Playgroud)

这真是一种痛苦.必须有一些方法可以在本地存储常用的库,然后允许我的控制台使用requirejs或其他东西将它们导入一行(而不记住cdn url).我是一个蟒蛇人,我已经习惯于在我的PATH中插入任何已安装的模块.我希望能够以类似的方式玩js - 这就是我学得最好的方式.

javascript google-chrome web-inspector coffeescript

0
推荐指数
1
解决办法
1001
查看次数

Mockery没有嘲笑以前需要的模块?

views.js

controllers = require '../../modules/fixture/controllers.js'
exports.custom = (db) ->
  (req, res) ->
    controllers.custom req.body
      , (result) ->
        res.json result : result
      , (error) ->
        res.json 400, error : error
Run Code Online (Sandbox Code Playgroud)

test.js

mockery = require "mockery"

exports.tests = (app, db, config) ->
  describe '#routes', ->
    describe '/fixture/custom', ->
      it 'should return status 400 if no request body was provided', (done) ->
        request app
          .post '/fixture/custom'
          .send
            body :
              players : []
          .expect 400, done

  describe '#views', ->
    describe '#custom', ->
      controller = …
Run Code Online (Sandbox Code Playgroud)

mocking node.js coffeescript

0
推荐指数
1
解决办法
2293
查看次数

从嵌套对象树获取路径

我目前遇到的一个问题是,当我开始时似乎并不难为我解决,但我现在卡住了几个小时,所以我们走了:

给定这个对象数组:

groups = [
  {
    name: 'Custard apple',
    slug: 'custard-apple',
    children: [
      {
        name: 'Vanilla',
        slug: 'vanilla',
        children: [
          {
            name: 'Strawberry',
            slug: 'strawberry',
            children: []
          }, {
            name: 'Pineapple',
            slug: 'pineapple',
            children: []
          }
        ]
      }, {
        name: 'Chocolate',
        slug: 'chocolate',
        children: []
      }
    ]
  }, {
    name: 'Raspberry',
    slug: 'raspberry',
    children: []
  }, {
    name: 'Lemon',
    slug: 'lemon',
    children: [
      {
        name: 'Orange',
        slug: 'orange',
        children: [
          {
            name: 'Coconut',
            slug: 'coconut',
            children: []
          }
        ]
      }, …
Run Code Online (Sandbox Code Playgroud)

javascript recursion coffeescript

0
推荐指数
1
解决办法
985
查看次数

将"$ .each(数据,函数(索引)"转换为coffeescript?

我无法将其从Jquery/Javascript转换为coffeescript,因为我是一名初学者而且我发现很难掌握.有人可以帮我一把吗?

    $.each(data, function (index) {
        arrayOfThings.push(data[index].thing);
    });
Run Code Online (Sandbox Code Playgroud)

这是一个接收AJAX'GET'数据的函数.

javascript arrays jquery coffeescript

0
推荐指数
1
解决办法
428
查看次数

将CoffeeScript高阶函数转换为Haskell

阅读优秀的CoffeeScript Ristretto,我遇到了这个功能:

((x) ->
  (y) ->
    x
)(1)(2)
Run Code Online (Sandbox Code Playgroud)

我的理解是结果x与输入相同x.

Haskell版本(*)看起来像这样吗?

foo :: a -> b -> (a -> b) -> a
foo x y f = x
Run Code Online (Sandbox Code Playgroud)

*注意 - 我不知道Haskell的健壮类型系统v.CoffeeScript是否有1-1翻译

haskell coffeescript

0
推荐指数
1
解决办法
100
查看次数

Jquery令牌输入 - allowCustomEntry无法正常工作

我正在使用Jquery令牌输入版本1.6.0.我希望能够在令牌输入中输入自定义条目,但每次我这样做时表单都会提交(我输入一个自定义单词并点击回车).这是我的代码(在coffeescript中):

jQuery ->
    $('[id$=tag_list_tokens]').each ->
        el = $(this)
        el.tokenInput '/listings/tags.json',
            theme: 'facebook'
            minChars: 1
            allowCustomEntry: true
            preventDuplicates: true
            prePopulate: el.data('load')
            allowFreeTagging: false
Run Code Online (Sandbox Code Playgroud)

一切正常,除了自定义条目......任何想法我做错了什么?

javascript jquery coffeescript jquery-tokeninput

0
推荐指数
1
解决办法
995
查看次数

在JavaScript中,使用Regex时,如何在不使用空格字符的情况下匹配空格OR?

在CoffeeScript中使用块正则表达式时,会删除空格.所以,除非我使用\s,否则我无法匹配空格,但这也匹配新的行,制表符等.

所以在JavaScript中(因为除了块正则表达式之外,CoffeeScript正则表达式与JavaScript相同),有没有一种方法可以匹配ONLY空格而不使用空格本身?

javascript regex space block coffeescript

0
推荐指数
1
解决办法
85
查看次数

Ember:组件中的sendAction不起作用

在一个组件中,我有一个返回主屏幕的按钮.当我点击它时sendAction似乎没有开火.我希望它将动作发送到路线动作:

routes.js.coffee:

App.AutomobileRoute = Ember.Route.extend(Ember.SimpleAuth.AuthenticatedRouteMixin,

  model: (params) ->
    @store.find('automobile', params.automobile_id)

  setupController: (controller, model) ->
    controller.set('content', model)
    @controllerFor('application').set('currentRoute', 'automobiles')

  actions:
    back: ->
      @transitionTo 'automobiles'
)
Run Code Online (Sandbox Code Playgroud)

零件:

backToAutomobiles: ->
  console.log 'Hit Back'
  response = @.sendAction 'back'
  console.log "Response: " + response
Run Code Online (Sandbox Code Playgroud)

模板:

<button type="button" class="btn btn-default" id='back' {{action 'backToAutomobiles' model}}>Back</button>
Run Code Online (Sandbox Code Playgroud)

我接到'点击'消息,但页面没有改变.说实话,这可能是这个问题的重复,我只是不能很好地回答这个问题.

完整模板:

<div class="panel-group" id="automobile-details">
  <div class="panel panel-default">
    <div class="panel-heading">
      <span class="spec-title">
        <h3 class="panel-title">
          <a data-toggle="collapse" data-parent="#automobile-details" href="#automobile-details-body">
            {{model.name}}
          </a>
        </h3>
      </span>
      &nbsp;
      <span>
        {{view Em.Select …
Run Code Online (Sandbox Code Playgroud)

coffeescript ember.js

0
推荐指数
1
解决办法
1860
查看次数