有没有办法送的CoffeeScript到客户端的浏览器,并已将其编译为JavaScript 那里?
<script type="text/coffeescript">
square = (x) -> x * x
list = [1, 2, 3, 4, 5]
squares = (square num for num in list)
</script>
Run Code Online (Sandbox Code Playgroud)
CoffeeScript编译器是用JavaScript编写的,所以我可以将其发送到客户端以在客户端的浏览器中编译/运行此代码吗?
我在coffeescript中编写了一个jquery插件,但我不确定如何使函数包装器部分正确.
我的coffeescript从这开始:
$.fn.extend({
myplugin: ->
@each ->
Run Code Online (Sandbox Code Playgroud)
哪个用函数包装器创建javascript:
(function() {
$.fn.extend({
myplugin: function() {
return this.each(function() {
Run Code Online (Sandbox Code Playgroud)
但我希望像这样传入'$':
(function($) {
$.fn.extend({
Run Code Online (Sandbox Code Playgroud)
类似于我的结局......在coffeescript中没有特别的.
我在javascript中得到这个:
})();
Run Code Online (Sandbox Code Playgroud)
但是想这样:
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
有谁知道如何使用coffeescript编译器实现这一目标?或者在coffeescript中完成这项工作的最佳方法是什么?
我惊讶地发现这不起作用:
coll = new Backbone.Collection
for i in [1..1000]
coll.add new Backbone.Model()
console.log coll.length # 1000
coll.remove coll.models
console.log coll.length # 500!
Run Code Online (Sandbox Code Playgroud)
我理解为什么这个奇怪的结果或多或少会发生,虽然它对我来说似乎是个错误.在任何情况下,什么是最好的选择,而不采用像_reset(因为我希望remove触发适当的事件)无论如何都不会工作的内部方法?
CoffeeScript文档声明列表推导应该能够执行选择/过滤操作:
它们应该能够处理大多数你将使用循环,每个/ forEach,map或select/filter的地方.
你可以想象你可以在一条线上做点什么,result = item for item in list if item % 2 == 0
但是我能来的最近
list = [1,2,3,4]
result = []
for item in list
if item % 2 == 0 then result.push item
Run Code Online (Sandbox Code Playgroud)
什么是最简洁的方法来过滤CoffeeScript中的列表?
我有一个Rails 3.1的项目,我的工作,但我不希望controller_name.css.sass和controller_name.js.coffee每个I运行时都生成rails generate controller controller_name.我可以发誓我已经在互联网上的某个地方看到了这个设置,但我现在找不到它的生命.它是什么?
请记住,我仍然想要使用Asset Pipeline和CoffeeScript/Sass集成,但我正在以自己的方式组织这些文件.
我很确定答案是命令行参数,但是使用生成器设置或隐藏文件或其他东西来关闭它的奖励点.
编辑:我找到了它的命令行标志.
rails generate controller controller_name --assets=false
Run Code Online (Sandbox Code Playgroud)
或类似的东西(该行实际上出错,但它也不会产生资产).此处的API 显示:assets => true为默认选项.如何将其更改为false并在每次生成控制器时始终为false?
我想用'coffee'处理一些文件,添加一些js文件,concat和minify.
这不起作用,咖啡在常规js文件上失败:
gulp.task 'build-js', ->
gulp.src([
"bower_components/mbdev-core/dist/js/db.js"
"bower_components/mbdev-core/dist/js/utils.js"
"src/js/config/app.coffee"
"src/js/config/app-db.coffee"
"src/js/accounts/accounts.coffee"
"src/js/budget_items/budget_items.coffee"
"src/js/line_items/line_items.coffee"
"src/js/misc/misc.coffee"
"src/js/reports/report_generators.coffee"
"src/js/reports/reports.coffee"
])
.pipe(coffee()).on('error', gutil.log)
.pipe(concat('app.js'))
.pipe(gulp.dest('public/js'))
Run Code Online (Sandbox Code Playgroud)
有没有办法在咖啡部分后添加文件?
我在Rails应用程序中使用CoffeeScript,我想对它进行单元测试.谷歌没有发现任何东西,有没有办法做我自己的测试框架或测试CoffeeScript输出的JavaScript?
我有一个很好的关于旋转的问题.我希望在我的一个游戏中旋转我的3D立方体.
//init
geometry = new THREE.CubeGeometry grid, grid, grid
material = new THREE.MeshLambertMaterial {color:0xFFFFFF * Math.random(), shading:THREE.FlatShading, overdraw:true, transparent: true, opacity:0.8}
for i in [1...@shape.length]
othergeo = new THREE.Mesh new THREE.CubeGeometry(grid, grid, grid)
othergeo.position.x = grid * @shape[i][0]
othergeo.position.y = grid * @shape[i][1]
THREE.GeometryUtils.merge geometry, othergeo
@mesh = new THREE.Mesh geometry, material
//rotate
@mesh.rotation.y += y * Math.PI / 180
@mesh.rotation.x += x * Math.PI / 180
@mesh.rotation.z += z * Math.PI / 180
Run Code Online (Sandbox Code Playgroud)
和(x,y,z)可以是(1,0,0)
然后立方体可以旋转,但问题是立方体在其自己的轴上旋转,因此在旋转后,它不能按预期旋转.
我找到页面如何围绕轴旋转Three.js Vector3?,但它只是让Vector3点围绕世界轴旋转? …
最近,我开始了新的rails 5.1.4项目,但我忘了补充--skip-coffee上rails new.
有没有办法在不创建新项目的情况下删除coffeescript依赖项?
提前致谢.
我有一个coffeescript类,它有一些jquery事件监听器.我想使用胖箭=>来避免引用类,但我仍然需要引用通常会使用的元素this.我怎么能同时使用?
class PostForm
constructor: ->
$('ul.tabs li').on 'click', =>
tab = $(this)
@highlight_tab(tab)
@set_post_type(tab.attr('data-id'))
highlight_tab: (tab)->
tab.addClass 'active'
set_post_type: (id) ->
$('#post_type_id').val(id)
Run Code Online (Sandbox Code Playgroud) coffeescript ×10
javascript ×3
backbone.js ×1
gulp ×1
jquery ×1
ruby ×1
sass ×1
this ×1
three.js ×1
unit-testing ×1