更具体地说,是否有一个REPL具有(更多)丰富多彩的输出,漂亮的打印,标签完成以及ipython对node.js javascript/coffeescript的其他好处?
有没有办法Promises在Coffeescript中链接在一起.例如,考虑以下javascript代码,
return $.getJSON('/api/post.json')
.then(function(response) {
// do something
})
.then(function(response) {
// do something
})
.then(null, function(err) {
// do something
});
Run Code Online (Sandbox Code Playgroud)
每个then's都是可选的,最终then需要由函数返回.目前我在coffeescript中写这个,
promise = $.getJSON('/api/post.json')
promise = promise.then (response) ->
// do something
promise = promise.then (response) ->
// do something
promise = promise.then null, (err) ->
// do something
return promise
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?谢谢.
我正在用angularjs和laravel构建应用程序4.一切都很好但我现在只需要允许XHR请求.
这就是我在控制器开头所拥有的.但这种说法总是错误的.
if (!\Request::ajax())
{
return Response::json(array('halt'=>Request::ajax()));
};
Run Code Online (Sandbox Code Playgroud)
在角度我使用标准的$ http服务.
angular.module('APP')
.factory("API", ($http,$q,appClient,apiURL) ->
class FB
constructor:->
this.deferredData = $q.defer();
info: (reload)->
$http(
method: "get"
url: apiURL+'game/'+appClient+"/info"
).success((res)->
dostuff()
)
Run Code Online (Sandbox Code Playgroud) 我想在我的.coffee文件中使用一些erb,如下例所示
myLatlng: new google.maps.LatLng(<%=@location.latitude %>, <%=@location.longitude %>)
Run Code Online (Sandbox Code Playgroud)
我改名locations.js.coffee为locations.erb.coffee
但我仍然得到以下错误
Error compiling asset application.js:
ExecJS::ProgramError: Error: Parse error on line 4: Unexpected 'COMPARE'
(in /Users/denisjacquemin/Documents/code/projects/geolog/app/assets/javascripts/locations.erb.coffee)
Served asset /application.js - 500 Internal Server Error
Run Code Online (Sandbox Code Playgroud) 我不能为我的生活想出这个或在网上找到解决方案.我试图找出如何使用基于jQuery的JavaScript在CoffeeScript中编写脚本.
脚本是这样的:
jQuery('.post-thumb a').hover( function() {
jQuery(this).find('.overlay').fadeIn(150);
}, function() {
jQuery(this).find('.overlay').fadeOut(150);
});
Run Code Online (Sandbox Code Playgroud)
我最初尝试重写这样的:
thumb_overlay =>
$('.post-thumb a').hover
=> $(this).find('.overlay').fadeIn(150)
,=> $(this).find('.overlay').fadeOut(150)
Run Code Online (Sandbox Code Playgroud)
但那不起作用,所以我想我会发布在这里.那么如何在CoffeeScript中编写JavaScript呢?
我知道如何在coffeescript中进行循环递增,例如:
CoffeeScript的:
for some in something
Run Code Online (Sandbox Code Playgroud)
生成的Javascript:
for (_i = 0, _len = something.length; _i < _len; _i++)
Run Code Online (Sandbox Code Playgroud)
如何在Coffeescript中创建类似于此的循环递减?
for (var i = something.length-1; i >= 0; i--)
Run Code Online (Sandbox Code Playgroud) 我想在我的node.js脚本中使用phantomjs.有一个phantomjs节点库..但不幸的是,作者使用这个奇怪的咖啡脚本代码来解释他在做什么:
phantom = require 'phantom'
phantom.create (ph) ->
ph.createPage (page) ->
page.open "http://www.google.com", (status) ->
console.log "opened google? ", status
page.evaluate (-> document.title), (result) ->
console.log 'Page title is ' + result
ph.exit()
Run Code Online (Sandbox Code Playgroud)
现在如果我直接用javascript使用phantomjs,它看起来像这样:
var page = require('webpage').create();
page.open(url, function (status) {
var title = page.evaluate(function () {
return document.title;
});
console.log('Page title is ' + title);
});
Run Code Online (Sandbox Code Playgroud)
所以基本上我正在尝试在普通的javascript中编写相当于上面第一段代码的代码(通过阅读咖啡脚本文档 ..这就是我所做的:
// file name: phantomTest.js
var phantom = require('phantom');
phantom.create(function(ph) {
ph.createPage(function(page) {
page.open('http://www.google.com', function(status) { …Run Code Online (Sandbox Code Playgroud) 我已经设置了Webstorm来识别和编译我的coffeescript文件.
我已经安装了AngularJS插件,并且可以在普通的旧javascript中成功编写我的控制器等.
当我尝试在CoffeeScript中编写我的角度相关代码但是我没有得到任何IDE支持:代码完成,智能感知等.
作为一切都不好的标志,angular变量本身无法识别,如下图所示.

问题:如何在CoffeeScript文件中启用对AngularJS的支持?
谢谢
我非常喜欢将CoffeeScript(1.1.1)用于小型项目,到目前为止效果很好.然而,在更广泛的环境中使用它之前,我想听听关于在生产中使用它的第二意见.
所以我的问题是:
谢谢!
注意:我已经听说过"CoffeeScript支持将包含在Ruby on Rails 3.1版中." (维基百科),由于Rails社区的额外支持,这很棒.
这是我的CoffeeScript:
buffer = new Buffer 100
buffer[i] = i for i in [0..99]
console.log buffer
Run Code Online (Sandbox Code Playgroud)
编译成
var buffer, i;
buffer = new Buffer(100);
for (i = 0; i < buffer.length; i++) {
buffer[i] = i;
}
console.log(buffer);
Run Code Online (Sandbox Code Playgroud)
当我用节点运行它时,我得到以下输出:
$ coffee exercise1
<Buffer 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 …Run Code Online (Sandbox Code Playgroud)