我需要基本上将一个select元素转换为一组隐藏字段以与rails应用程序通信,因此需要遍历每个元素,我只能找到如何迭代数组,我可能在这里丢失了一些愚蠢的东西我知道但是谁能帮我?
我检查了这个如何在CoffeeScript中定义全局变量? 用于声明全局变量,即在app.js中声明并在routes/index.coffee中访问
我在app.coffee中声明了(导出?this).db = redis.createClient()并尝试使用db.set('online',Date.now(),(错误)访问routes.index.coffee中的数据库. ,回复) - > console.log(reply.toString()))这似乎不起作用......发生了什么..我在节点0.8.9
还有其他方法可以运行,但很想知道发生了什么......还尝试了app.coffee中的@db = redis.createClient(),它也不起作用
谢谢
这个coffeescript:
if typeof(groups) is undefined or groups.length == 0
Run Code Online (Sandbox Code Playgroud)
被编译成以下javascript:
if (typeof groups === void 0 || groups.length === 0)
Run Code Online (Sandbox Code Playgroud)
基本上我想检查groups数组是否为空或空,并希望如果第一个条件为真,则不会检查第二个条件(短路).但是,Chrome会引发以下错误:
未捕获类型错误:无法读取未定义的属性长度
关于它为什么不会发生短路的任何见解?
我对这个coffeescript事情完全不熟悉,但Rails似乎要我使用它,所以我试试看.
我有点理解coffeescript页面上的基本例子,但我不知道如何将这个jquery函数转换成coffeescript
$(function() {
$('#alert').delay(100).show("drop", { direction:"up" }, 900);
});
Run Code Online (Sandbox Code Playgroud) RubyRogues播客上有人曾说过" 学习CoffeeScript,因为CoffeeScript写的javascript比你写得好. "抱歉,不记得是谁说的......
所以,我采用了一个非常简单的WORKING javascript函数:
togglingii.js
function pdtogglejs(id) { $('div .partybackground').removeClass("hidden"); }
Run Code Online (Sandbox Code Playgroud)
这条线被称为:
<a href="#" class="dctoggle" onclick="pdtogglejs('partybackground')">Read More...</a>
Run Code Online (Sandbox Code Playgroud)
然后,我将它改成这样的CoffeeScript: toggling.js.coffee
pdtogglecs(id) ->
jQuery('div .partybackground').removeClass("hidden")
Run Code Online (Sandbox Code Playgroud)
并更改了html以引用pdtoggle*c*s而不是pdtoggle*j*s.
我可以在我的application.js文件中看到它们两个就好了:
(function() {
pdtogglecs(id)(function() {
return jQuery('div .partybackground').removeClass("hidden");
});
}).call(this);
function pdtogglejs(id) { $('div .partybackground').removeClass("hidden"); }
;
(function() {
}).call(this);
Run Code Online (Sandbox Code Playgroud)
但是,只有纯JavaScript才有效.coffeescript始终返回Uncaught ReferenceError:未定义pdtogglecs.
基于其他stackoverflow问题,它必须是某种命名空间错误.可能是因为pdtogglecs本身就是一个函数内部的方式?但是,我尝试使用以下命令定义coffeescript函数:window.pdtogglecs,this.pdtogglecs,root.pdtogglecs和coffescript总是因为该错误而失败.
我错过了什么?
谢谢!!
我目前正在使用以下代码进行比较,但正如您所看到的,我正在制作吨if if语句.有没有办法简化代码并使其更有效?
getGenderRef: (grammer=nil) ->
@gender_ref = ""
gender = this.get('gender')
if gender? and gender == 'male'
if grammer == 'he'
@gender_ref = 'he'
else if grammer == 'his'
@gender_ref == 'his'
else if grammer == 'him'
@gender_ref == 'him'
else if gender? and gender == 'female'
if grammer == 'he'
@gender_ref = 'she'
else if grammer == 'his'
@gender_ref == 'her'
else if grammer == 'him'
@gender_ref == 'her'
else if gender? or gender == null
if grammer == …Run Code Online (Sandbox Code Playgroud) 试着在这里理解一些东西:如果我从javascript向DOM渲染一些东西,并想在其上调用jQuery方法,它的行为与我从DOM"重新选择"元素的行为不同.这是CoffeeScript中的一个简单示例:
element = """
<div id="my_div">TEST!</div>
"""
$('body').html(element)
element.hide() #this doesn't work.
$(element).hide() #this doesn't work either.
$('div#my_div').hide() #this does.
Run Code Online (Sandbox Code Playgroud)
所以,我似乎在这里误解了一些东西.我猜元素变量只是一个字符串,jQuery不明白它已被添加为DOM中的元素.
是否有不同的方法将内容插入到dom中,以便在插入后它的行为类似于正常选择的jQuery对象?
我正在尝试写一些coffeescript给我回复我点击的链接,我遇到了麻烦.
问题是我回来的元素是启动这个链的选择器,但这不是我想要的.
$(document).ready ->
$("#js-exercises-links").bind "cocoon:after-insert", (e, inserted_item) ->
$("#js-exercise-links a.add_fields").data("association-insertion-node", '#js-outline-fields')
$("select").chosen()
$(".js-show-set-duration").click (e)=>
e.preventDefault()
console.info this
Run Code Online (Sandbox Code Playgroud)
在这个例子中,当我查看我的控制台时,我得到<div id='js-exercises-links'>了我真正想要的是我点击的当前元素,它将是一个实例<div class='js-show-set-duration'>
我究竟做错了什么?如何让$(this)引用点击的元素?
我正在研究一个非常大的节点Web应用程序,并意识到我的工作流程不是最理想的.服务器端代码很好地组织成节点模块.但是,应用程序中的大部分繁重工作都发生在客户端代码上.
该项目由jade,less和javascript/coffeescript代码组成.此外,还有一堆来自库(jQuery,D3,Bootstrap等)的css/js.我正在寻找,但很难找到,是一个很好的工具链,可以帮助我组织我的项目,并在开发和生产之间切换:
开发模式:在节点中即时编译jade,less和coffeescript,无需重建.将编译后的代码作为单独的文件包含在html中.在服务器端代码中设置一些调试参数.
生产模式:构建脚本(make/ant),编译压缩并将代码组合成静态html/css/js.
目前,我正在手动执行一些用于开发的节点服务器代码,以及用于生产的make文件,例如:
cat javascript/*.js > build/client.js
Run Code Online (Sandbox Code Playgroud)
然而,这有点烦人,我根本不是制造/蚂蚁专家.另外一个问题来源是我正在为开发和生产维护单独的html文件,因为它们包含不同的css/js文件.
是否有任何好的框架或示例项目可以帮助我改进我的工作流程?谷歌给了我像hem,buildr.npm,grunt这样的东西,但我不太确定这些项目有多成熟,如果他们真的解决了我的问题或者增加了更多的复杂性.
我在安装Node和Coffeescript时遇到了一些困难.我已经使用自制软件安装了节点,然后我成功安装了NPM.我试图从NPM安装Coffeescript,它似乎已经工作但我不能喝咖啡
localserver:Documents x$ sudo npm -g install coffee-script
Password:
npm http GET https://registry.npmjs.org/coffee-script
npm http 304 https://registry.npmjs.org/coffee-script
/usr/local/share/npm/bin/coffee -> /usr/local/share/npm/lib/node_modules/coffee-script/bin/coffee
/usr/local/share/npm/bin/cake -> /usr/local/share/npm/lib/node_modules/coffee-script/bin/cake
coffee-script@1.4.0 /usr/local/share/npm/lib/node_modules/coffee-script
localserver:Documents x$ coffee
-bash: coffee: command not found
localserver:Documents x$
Run Code Online (Sandbox Code Playgroud)
我需要为此设置一些路径环境变量吗?即使我导航到/usr/local/share/npm/lib/node_modules/coffee-script/bin/coffee我也无法从这里运行它.
coffeescript ×10
javascript ×5
jquery ×5
node.js ×3
npm ×2
express ×1
if-statement ×1
less ×1
macos ×1