标签: coffeescript

如何在CoffeeScript中创建命名函数表达式?

如何在CoffeeScript中创建一个命名函数表达式,如下例所示?

var a = function b (param1) {}
Run Code Online (Sandbox Code Playgroud)

要么

return function link (scope) {}
Run Code Online (Sandbox Code Playgroud)

javascript coffeescript

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

密码确认原点更改时的验证

所以,我需要一个验证器来检查以确保我的password_confirmation字段与我的password字段匹配.我最终得到了以下指令:

指示

@app.directive 'matches', ->
  require: 'ngModel', #Needed for validation bits
  scope: { matched_value: '=matches' } #Looks up the value of the scope element we're matching against and keeps it bound
  link: (scope, elem, attrs, ctrl) ->
    ctrl.$parsers.unshift (view_value) -> #Add a new parser that updates the validity
      ctrl.$setValidity(elem.attr('name'), view_value == scope.matched_value)
Run Code Online (Sandbox Code Playgroud)

形成

<form name="form">
  <input ng-model="new_user.password" name="password">
  <input ng-model="password_confirmation" name="password_confirmation" matches="new_user.password">
</form>
Run Code Online (Sandbox Code Playgroud)

当用户从上到下使用表单时,这很好用.然而,如果他们继续改变password之后他们已经填补了password_confirmation它,那么它就不会像它应该的那样变得无效.

我的第一个stab看起来添加了一个$watcher指令,但我似乎无法获得新password_confirmation输入的正确值.

带观察者的指令(CoffeeScript)

@app.directive 'matches', …
Run Code Online (Sandbox Code Playgroud)

validation coffeescript angularjs angularjs-directive

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

带键的ReactJS动态子

从最新版本的ReactJS开始,我们发出警告,要求为动态子项添加键.我遇到了一些问题,发现哪个组件产生了这个警告...我首先假设只有在"for循环"中动态生成的子项才会抛出此警告(因为它是"动态生成的").最后,我发现我们应用程序的每个组件都会抛出此错误,因为我们到处都有子项(即使我们没有"for循环"):(

我们正在使用CoffeeScript,我问自己是否正在以正确的方式使用ReactJS:

DOM = React.DOM
myComponent = React.createClass
  render: ->
    DOM.div {className: "app", ref: "app"},
      DOM.div {className: "child1"}, "This is a test" # throw warning
      DOM.div {className: "child2", key: "child2"}, "Hello" # don't throw warning
Run Code Online (Sandbox Code Playgroud)

这里child1除非我们添加一个是扔一个警告关键属性.这种行为是否正常?我们做错了吗?我的意思是我们需要为500多个组件/子项添加密钥,这是一项艰苦而乏味的工作......

此外,警告说"undefined"函数正在抛出它.所以我需要每次挖掘大约10分钟到1小时来检查纠正的地方...... :(

最好的问候,Kursion

javascript coffeescript reactjs

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

Node.js无法识别Coffeescript

我目前正在尝试与SailsJS框架一起进入NodeJS.我想在服务器端使用藏汉CoffeeScript的,但将所有文件后config/*.js,以config/*.coffee正确地js2coffee,我在尝试启动应用程序时出现以下错误:

配置/ 400.coffee

SyntaxError: Unexpected token ILLEGAL
Run Code Online (Sandbox Code Playgroud)

指向文件中的第一个字符,这是咖啡评论的标签.因此,似乎该应用程序不会将该文件识别为coffeescript,而是搜索标准js.

我尝试安装包coffee-script并要求它

app.js

require('coffee-script');
require('sails').lift(require('optimist').argv);
Run Code Online (Sandbox Code Playgroud)

但它没有帮助.

如果我删除400.coffee,则错误出现在下一个文件中403.coffee.

我究竟做错了什么?配置文件中是不允许使用coffeescript还是我遗漏了什么?

javascript node.js coffeescript sails.js

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

为什么coffeescript会覆盖我的下划线?

我编写了以下代码,旨在将字符串连接到一个URL.

_ = require 'underscore'

exports.joinUrl = (start, rest...) ->
  for item in rest
    if _.last start is '/'
      if _.first item is '/'
        start += item[1..]
      else
        start += item
    else
      if _.first item is '/'
        start += item
      else
        start += '/' + item
  start
Run Code Online (Sandbox Code Playgroud)

当我启动coffeescript repl时,会发生一件非常奇怪的事情:

> _ = require 'underscore'
[snipped]
> {joinUrl} = require './joinurl'
{ joinUrl: [Function] }
> _
{ joinUrl: [Function] }
Run Code Online (Sandbox Code Playgroud)

咦?不知何故导入joinUrl是覆盖变量的定义_.即使(a)coffeescript将上面粘贴的模块包装到一个函数中,因此变量的任何使用_都不应该影响外部范围,并且(b)在该代码中的任何一点我都不做任何赋值_,除了require …

javascript coffeescript

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

如何阻止Sublime Text 2在保存时自动编译coffeescript?

当我在Sublime Text 2中保存coffeescript文件时,它会自动将其编译为javascript并在该目录中创建一个新文件.这是一种不受欢迎的行为.我如何阻止这种情况发生?当我保存在不同的文本编辑器(例如:nano)时,这不会发生.

coffeescript sublimetext2

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

Coffeescript中IF语句中的多个OR

在我继续之前,我试图在Coffeescript中验证多个语句.

我有一些基本的东西:

 if ext != 'jpeg' || ext != 'pdf' || ext != 'jpg'

     alert('extension must be jpg, pdf, jpeg')
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?我是咖啡新手并且认为基本的东西应该不难做到.

coffeescript

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

用插值选择元素

是否可以选择带插值的元素?我有一个带字符串的var

inputId = "awesomeInput"
Run Code Online (Sandbox Code Playgroud)

我想选择ID为"awesomeInput"的输入.我试着这样做,就像我通常用jquery做的那样

$("#{inputId}")
Run Code Online (Sandbox Code Playgroud)

console.log告诉我已经选择了某些东西,但我试图在这个对象上执行的任何函数都失败了.没有错误,也没有效果.像这样:

$("#{inputId}").show()
Run Code Online (Sandbox Code Playgroud)

如何选择像这样的jquery元素,而不是显示它?

jquery string-interpolation coffeescript

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

范围内的变化承诺"然后"方法

我编写了以下程序,每N毫秒处理一个目录中的所有文件:

fs = require "fs"
Q = require "q"

class FileProcessor
  constructor: (options) ->
    @dir = options.dir
    @delay = options.delay

  processFiles: ->
    Q.nfcall fs.readdir, @dir
    .then (files) -> Q.all files.map (file) -> @processFile file # <-- Error!
    .then -> Q.delay @delay
    .then -> @processFiles()
    .done()

  processFile: (file) ->
    deferred = Q.defer()

    # Does some stuff.

    return deferred.promise

fp = new FileProcessor(dir: "photos", delay: 1000)
fp.processFiles()
Run Code Online (Sandbox Code Playgroud)

在第11行,我收到此错误:

TypeError: undefined is not a function
Run Code Online (Sandbox Code Playgroud)

似乎@processFile不在范围内.如何解决这个问题?

javascript node.js promise coffeescript q

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

通过Node.js连接到远程Docker

我在我的一台服务器上设置并运行了Docker,可以像这样远程连接到它:

docker --tlsverify -H tcp://web2.webcom.dk:4243 images

我用这个这个得到它成立.

我想做的是能够通过Node.js连接到它并尝试使用dockerode,这对我来说似乎是最好的选择.

这是我的代码:

Docker = require 'dockerode'

docker = new Docker
  host: 'tcp://web2.webcom.dk'
  port: 4243
  tls: true
  tlscacert: '/Users/jacob/.docker/ca.pem'
  tlscert: '/Users/jacob/.docker/cert.pem'
  tlskey: '/Users/jacob/.docker/key.pem'
  tlsverify: true

container = docker.getContainer '826544226fdc'
container.start (err, data) ->
  return console.error err if err?
  console.log data
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为我收到此错误:

{ [Error: connect ECONNREFUSED]
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect' }
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

UPDATE

这适用于本地:

Docker = require 'dockerode'

docker = new Docker
  host: '192.168.59.103'
  port: 2375
  socketPath: …
Run Code Online (Sandbox Code Playgroud)

node.js coffeescript docker

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