标签: coffeescript

angular.injector(..).invoke 在控制台中不返回单例

剧本:

app = angular.module('app', [])

app.factory 'MyFactory', ->
  val: 'Clark Kent'

app.controller 'MainCtrl', ($scope, MyFactory) ->
  MyFactory.val = 'Waldo'
  $scope.myFactory = MyFactory
Run Code Online (Sandbox Code Playgroud)

将其放入控制台:

angular.injector(['ng','app']).invoke(function(MyFactory) { console.log(MyFactory); })
Run Code Online (Sandbox Code Playgroud)

... 而不是Waldo,你会得到Clark Kent!!

为什么它不返回相同的对象?

看看plunkr

javascript singleton coffeescript angularjs

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

我正试图在CoffeeScript中重写它.不见了

function getElementsByClassName(className)
{
 // get all elements in the document
 if (document.all)
 {
  var allElements = document.all;
 }
 else
 {
  var allElements = document.getElementsByTagName("*");
 }

 var foundElements = [];
 for (var i = 0, ii = allElements.length; i < ii; i++)
 {
  if (allElements[i].className == className)
  {
   foundElements[foundElements.length] = allElements[i];
  }
 }

 return foundElements;
}

var listItems = document.getElementsByClassName("quirky");

for (var i = 0, ii = listItems.length; i < ii; i++)
{
    alert(listItems[i].nodeName);
}
Run Code Online (Sandbox Code Playgroud)

coffeescript

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

如何搜索字符串以查看它是否包含所有子字符串?

我将使用coffeescript/javascript/jquery,如果字符串包含我的所有子字符串,我需要返回true.

所以,我们可以说我有一系列子串'my','dog','spot'.如果我的字符串'成长,我的宠物狗被命名为现场',我需要返回一个真实的.但如果字符串是'我有一只叫做斑点的狗',我需要返回false.

我想有一种方法可以用正则表达式做到这一点,但似乎无法弄明白?

javascript regex jquery coffeescript

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

摩卡测试中的setTimeout不起作用

我正在使用类似以下的函数。我正在使用异步系列来测试异步功能。该系列中的第一个回调工作正常,并且在名为callThisGuy(client,callback)的第二个方法处都中断了

testFunction: () ->
  client = @
  ASync.series([
    (callback) ->
       client.createSingleClient(callback)
    (callback) ->
       client.callThisMethod(client, callback)
    (callback) ->
      trace "In the next step"
  ],
 (err, results) ->
     trace "Test"
 )
Run Code Online (Sandbox Code Playgroud)

这是callThisMethod函数

callThisMethod:(client, callback) ->
    if(client.status == "new")
        callback(null," ")
    else
        setTimeout ( ->
            client.callThisMethod(client, callback)
        ), 1000
Run Code Online (Sandbox Code Playgroud)

即使状态不是“新”,也永远不会调用setTimeout函数。相反,它跳到下一步。我在没有Mocha的情况下运行了相同的代码,然后超时工作正常。

在摩卡咖啡中,它不起作用。我还检查了setTimeout是否未定义。它已定义。我想知道我是否想念一些东西。

asynchronous mocha.js node.js coffeescript

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

为什么.toUpperCase()不起作用?

我是framer.js的新手,我正在关注一本名为http://coffeescript-for-framerjs.com/#buy的书.

fruits[1].toUpperCase() 它运作正常

fruits.toUpperCase()
Run Code Online (Sandbox Code Playgroud)

在书中,它的果实不是水果,我试过两个但是得到错误

现在我知道toUpperCase()是一个字符串方法,所以它不适用于Array.但那时书究竟在说什么呢.

javascript coffeescript framerjs

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

CoffeeScript按键排序对象数组

我正在尝试拿起一些CoffeeScript,但仍坚持按键排序对象数组.这是我试过的:

sortByKey = (array, key) ->
    array.sort( (a,b) -> a[key] < b[key] ? -1 : a[key] > b[key] ? 1 : 0 )

testarr = [{i: 5, b:7}, {i:9, b:15}, {i:-4, b:-99}]
sortByKey(testarr, 'i')
val = el['b'] for el in testarr
alert val
Run Code Online (Sandbox Code Playgroud)

我的警报只显示-99,而我本来期望看到-99,7,15.我做错了什么?

javascript coffeescript

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

Coffeescript“@”变量

在 Coffeescript 中,当变量名称以“@”符号开头时,这意味着什么?例如,我一直在查看 hubot 源代码,就在我查看的前几行中,我发现

class Brain extends EventEmitter
  # Represents somewhat persistent storage for the robot. Extend this.
  #
  # Returns a new Brain with no external storage.
    constructor: (robot) ->
    @data =
      users:    { }
      _private: { }

    @autoSave = true

    robot.on "running", =>
      @resetSaveInterval 5
Run Code Online (Sandbox Code Playgroud)

我在其他地方也看到过,但没能猜出它的意思。

coffeescript

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

CoffeeScript中的懒惰和函数式编程

咖啡脚本是否懒惰评估?如果是这样,我可以用功能方式编写coffeescript吗?

functional-programming coffeescript

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

请帮我找bug

这两个图像的说明 图片1 图片2

代码

showUserProfile: (user_data)->
    console.log "Routers.AppRouter showUserProfile()", user_data
    window.user_profile = user_data

    playlists_both_people = user_profile['playlists']

    my_profile['playlists'].forEach (pl)-> playlists_both_people.push(pl)

    @playlists = new Playlists.Collections.PlaylistsCollection( playlists_both_people )

    $("#app").html( new Playlists.Views.User.ShowView(user_data).render().el )
    @ok()
Run Code Online (Sandbox Code Playgroud)

javascript coffeescript backbone.js

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

Lodash中_.map和_.forEach的性能差异是什么?

在lodash中滚动_.map和_.forEach列表的最佳方法是什么?我不需要返回值,但我只在循环中做一些事情.

在性能方面,这两个功能有什么区别?

a = []
b = []
list = response._source.carico_scarico
if angular.isDefined(list)
  _.forEach(list, (cs) ->
    if cs.qta >= 0 then a.push cs
    if cs.qta < 0 then b.push cs
  )
Run Code Online (Sandbox Code Playgroud)

要么

a = []
b = []
list = response._source.carico_scarico
if angular.isDefined(list)
  _.map(list, (cs) ->
    if cs.qta >= 0 then a.push cs
    if cs.qta < 0 then b.push cs
  )
Run Code Online (Sandbox Code Playgroud)

javascript coffeescript angularjs lodash

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

RoR&coffeescript:意外(

我看不出我的代码有什么问题.抛出似乎是一个奇怪的错误.请参阅此处了解"try coffeescript"编译器中的代码.

jQuery ->
  $('#swipes').sortable
    axis: 'y'
    update: ->
      $.post( $(this).data('update-url'), $(this).sortable.('serialize') )
Run Code Online (Sandbox Code Playgroud)

错误如下:

Error on line 5: unexpected (
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails coffeescript

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

对 CoffeeScript 文件运行 Jasmine 测试时出现对象未定义错误

我一直在学习 CoffeeScript,作为学习它的练习,我决定学习 TDD Conway 的 Game of Life。我选择的第一个测试是创建一个 Cell 并查看它是死还是活。为此,我创建了以下咖啡脚本:

class Cell 
  @isAlive = false


  constructor: (isAlive) ->
    @isAlive = isAlive
  
  die: ->
    @isAlive = false
Run Code Online (Sandbox Code Playgroud)

然后,我使用以下代码创建一个 Jasmine 测试文件(这是故意失败的测试):

Cell = require '../conway'

describe 'conway', ->
  alive = Cell.isAlive
  cell = null

  beforeEach ->
    cell = new Cell()

 describe '#die', ->
   it 'kills cell', ->
     expect(cell.isAlive).toBeTruthy()
Run Code Online (Sandbox Code Playgroud)

但是,当我在 Jasmine 中运行测试时,出现以下错误:

cell is not defined
Run Code Online (Sandbox Code Playgroud)

和堆栈跟踪:

1) kills cell
   Message:
     ReferenceError: cell is not defined
   Stacktrace:
     ReferenceError: cell is not defined …
Run Code Online (Sandbox Code Playgroud)

javascript coffeescript jasmine

-4
推荐指数
1
解决办法
2317
查看次数

如何从CoffeeScript中的JSON中获取数据?

可能重复:
如何使用CoffeeScript从JSON中提取特定数据?

我想从一个巨大的JSON字符串中获取一段特定的数据.如果发布在这里,整个字符串将超过10页,所以我只是包含一个示例代码段:

   { name: '',
     keys:
      [ 'statType',
        'count',
        'dataVersion',
        'value',
        'championId',
        'futureData' ],
     object:
      { statType: 'TOTAL_SESSIONS_PLAYED',
        count: { value: 5 },
        dataVersion: 0,
        value: { value: 5 },
        championId: { value: 31 },
        futureData: null },
     encoding: 0 }
Run Code Online (Sandbox Code Playgroud)

我如何使用CoffeeScript:

  1. 解析该字符串以定位具有特定值的对象,例如TOTAL_SESSIONS_PLAYED,
  2. 从该对象(value字段)中取出数值,然后
  3. 理想情况下,将该值附加到外部文本文件中?

我几乎是一个超级noob程序员.基本上,在这个例子中,我怎么能从5标记的对象中获取该值TOTAL_SESSIONS_PLAYED,并使用CoffeeScript将其附加到文本文件中?

json coffeescript

-5
推荐指数
1
解决办法
2万
查看次数