标签: coffeescript

使用Jasmine测试toUpperCase

我正在尝试测试是否String.toUpperCase使用Jasmine调用该方法.然而,无论何时我尝试它只是返回

toUpperCase()方法不存在

这是我的Jasmine测试:

spyOn(String,"toUpperCase")
$(@makeup.el).trigger(@e)
expect(String.toUpperCase).toHaveBeenCalled()
Run Code Online (Sandbox Code Playgroud)

有关如何测试是否被调用的任何想法?它似乎String是window对象的私有类,所以我实际上可能无法测试它.请帮忙.

javascript coffeescript jasmine

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

使用coffeescript时定义Meteor集合; ReferenceError表示集合未定义

我正在使用coffeescript.我在网上看到,当使用coffeescript和Meteor时,应该使用@来定义全局变量,例如集合.我已经这样做但我仍然收到以下错误.错误后会显示相关文件中的代码.我该如何解决这个错误?

谢谢.

错误--------

ReferenceError: GameStatus is not defined
    at app/server/methods/adminMethods.coffee.js:10:5
Run Code Online (Sandbox Code Playgroud)

---------------------------------- collections/gamestatus.coffee ----------- -----------------------

@GameStatus = new Meteor.Collection('gamestatus')
Run Code Online (Sandbox Code Playgroud)

---------------------------------- server/adminMethods.coffee ----------- -----------------------

Meteor.methods
    initializeGameStatus: () ->
        GameStatus.insert({gameOnOff: 0, asymmetric: 0})


if GameStatus.find({}).count() is 0
    Meteor.call 'initializeGameStatus', (err, result) ->
        if err
            console.log(err)
        else
            'GameStatus collection initialized'
Run Code Online (Sandbox Code Playgroud)

javascript coffeescript meteor

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

Yeoman Generator CoffeeScript入口点

是否可以将'index.coffee'文件挂钩作为Yeoman生成器的入口点?

'generator-generator'生成器创建'index.js'文件.用'index.coffee'替换它可以隐藏Yeoman的生成器.

我查看了文档,但没有找到任何提及它.

https://github.com/yeoman/yeoman/wiki/Generators

我找到了一个非常古老的Yeoman分支,似乎已经有了这个计划:

https://github.com/mklabs/yeoman/wiki/generators

目前我已经设置了一个将我的CoffeeScript文件编译成JavaScript的观察器.

generator coffeescript yeoman

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

返回函数而不是值的CoffeeScript函数

我有一个调用函数来获取值的哈希.问题是,函数返回内部函数而不是它应该的值.

(用户定义在此哈希之上)

我的哈希:

userInfo = {
        id: user.id,
        email: user.email,
        cars: getCars(user.id),
      }
Run Code Online (Sandbox Code Playgroud)

哪个叫这个功能:

  getCars = (userId) ->
    id = parseInt(userId)
    userRef = new Firebase("https://demo-firebase.firebaseIO.com/users/#{id}/")
    userRef.on('value', (snapshot) ->
      if snapshot.val() == null
        ["toyota"]
      else
        snapshot.val().cars # returns an array of cars
    )
Run Code Online (Sandbox Code Playgroud)

当我在调试器中并单步执行该函数时,它返回userRef.on行而不是if/else语句中的正确位置.

这是编译好的JS:

getCars = function(userId) {
  var id, userRef;

  id = parseInt(userId);
  userRef = new Firebase("https://demo-firebase.firebaseIO.com/users/" + id + "/");
  return userRef.on('value', function(snapshot) {
    if (snapshot.val() === null) {
      return ["toyota"];
    } else { …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension coffeescript google-chrome-devtools firebase

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

Coffeescript:在方法参数周围有大括号是什么意思?

checkbox: (propertyName, {hash}) ->
  ...
  ...
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

我熟悉这个概念

class Person
  constructor: (name) ->
    @name = name
Run Code Online (Sandbox Code Playgroud)

有一个简写

class Person
  constructor: (@name) ->
Run Code Online (Sandbox Code Playgroud)

{parameterName}有类似的魔力吗?

javascript coffeescript

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

动态地将数据点添加到人力车图

所以我正在使用Rickshaw图形库,我想知道如何动态地将点添加到图形中.

我有一个图像实例化如下:

        @seriesData = [ [], [], [] ]
        random = new Rickshaw.Fixtures.RandomData(150)


        for (var i = 0; i < 50; i++) {
            random.addData(self.seriesData)
        }


        @graph = new Rickshaw.Graph(
            element: document.getElementById("chart")
            width: 550
            height: 300
            renderer: 'area'
            series: [
                {
                    color: "#c05020"
                    data: self.seriesData[0]
                    name: 'One'
                }, {
                    color: "#30c020"
                    data: self.seriesData[1]
                    name: 'Two'
                }, {
                    color: "#2791d7"
                    data: self.seriesData[2]
                    name: 'Three'
                }
            ]
        )

        @graph.render()

        hoverDetail = new Rickshaw.Graph.HoverDetail(
            graph: self.graph
        )

        legend = new Rickshaw.Graph.Legend(
            graph: …
Run Code Online (Sandbox Code Playgroud)

javascript coffeescript socket.io rickshaw

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

从CoffeeScript重定向到URL

我正在尝试向使用Crafty的应用添加一个按钮,但是,与其他按钮不同,我希望这个按钮将用户重定向到其他URL.

请注意,没有人教过我如何使用Coffee或JavaScript,所以我真的很新.

我正在尝试使用重定向:

cfg.onClickTeacher = -> 
      preloadScene(CFG.ASSETS_MAIN, -> "www.my-site/teacher")
Run Code Online (Sandbox Code Playgroud)

但它没有用,所以,我该怎么做?

javascript coffeescript craftyjs url-redirection

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

无法更改d3.js矩形的填充

所以我有这个代码 -

bars.
  append('rect')
  .attr('x', 0)
  .attr('y', (d, i) ->
    return yScale(i)
  ).attr('width', (datum) ->
    return xScale(datum.freq)
  )
  .attr('height', barHeight)
  .attr('fill', 'blue')
  .attr('class', 'bar')
  .on('click', ->
    bars.selectAll('rect').attr('fill', '#0000ff')
    currentFill = d3.select(this).style('fill')
    nextColor = {}
    if currentFill == '#0000ff'
      nextColor = '#ff0000'
    else
      nextColor = '#0000ff'
    d3.select(this).style('fill', nextColor)
  )
Run Code Online (Sandbox Code Playgroud)

但是,bars.selectAll('rect')不会改变矩形的颜色.为什么?

javascript coffeescript d3.js

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

检查CoffeeScript中是否定义了嵌套属性?

检查是否定义了简单变量是很容易的 myVar?

问题是,CoffeeScript中是否有一种很好的方法来检查是否定义了嵌套属性?

例如

if property.p.p.p.p?
  alert "Hello"
Run Code Online (Sandbox Code Playgroud)

抛出ReferenceErrorif property.p.p.p(或property.p.p| property.p)未定义.

这只是我们必须递归检查的东西,还是有一个很好的功能?

undefined coffeescript

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

coffeescript总是回来

所以我有一个关于Coffee Script的愚蠢问题.我给它第二次机会,但为什么它会归还一切?

这是与函数的最后一个语句/行有关吗?以及如何禁用此功能?把评论或其他东西作为最终的"表达",我知道这是一个"记录"的特征,但没有; 不,不是真的,我怎么没有到处都有回报?并节省下载/执行时间?

当然这种行为可以搞砸jit了吗?

(locate =
    getPosition: () ->
        # Check we support geolocation
        throw Exception 'Your browser doesn\'t support location based services!' if !navigator.geolocation

        navigator.geolocation.getCurrentPosition (pos) ->
            console.log pos
)
Run Code Online (Sandbox Code Playgroud)

编译成

(function() {
  var locate;

  locate = {
    getPosition: function() {
      if (!navigator.geolocation) {
        throw Exception('Your browser doesn\'t support location based services!');
      }
      return navigator.geolocation.getCurrentPosition(function(pos) {
        return console.log(pos);
      });
    }
  };

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

[编辑]

我关心的原因是这只是我构建的应用程序的一个非常大的库之一,如果我们说有500个函数,其中200个对dom执行某些操作而不是返回类似数字或对象的内容,那么额外的200返回是我不想要或不需要的额外1.2k数据.

此外,一个没有返回的函数,返回undefined和一个返回null良好的函数,无需解释.如果我愚蠢到足以检查这一点,那就是全面的错误.

我敢肯定会有一些性能差异,但我不知道这一点,现在我没有时间做一些jsperfs,但我会感兴趣.

未定义且为null

javascript coffeescript

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