我想知道你是否能够从另一个coffeescript中要求一份咖啡.
我的示例代码来自文件"user.coffee"
class UserObj
constructor: (@name) ->
console.log @name
Run Code Online (Sandbox Code Playgroud)
我的主要文件中的示例代码
require "./user.coffee"
User = new UserObj "Example"
Run Code Online (Sandbox Code Playgroud)
这可能来自coffeescript文件或只是一个js文件?
这让我疯狂了.我无法让简单的路由器工作......
jQuery ->
class MyRouter extends Backbone.Router
routes:
"" :"index"
"/list" :"showList"
"/item/:id" :"showItem"
index: =>
alert "index"
showList: =>
alert "get the lists"
showItem: (id)=>
alert "the item #{id}"
@app = window ? {}
@app = window.app ? {}
@app.myRouter = MyRouter
Backbone.history.start()
Run Code Online (Sandbox Code Playgroud)
我总是得到这个错误:
index.js:50Uncaught TypeError: Cannot call method 'start' of undefined
我看到了这一点:启动backbone.js历史记录时不能调用undefined的'start'.
但它没有帮助=(...
我确信这是一个简单的,但我有点卡在这里...请帮助......
基本上我正在试图找出交换模型并对该事件做出反应的最佳方法.
class View extends Backbone.View
initialize: ()->
#do stuff
swapModel: (newModel)->
@model = newModel
view = new View({model:firstModel})
view.swapModel(newModel)
Run Code Online (Sandbox Code Playgroud)
换掉视图的模型,这是我需要做的吗?我应该计划还有其他副作用吗?什么是回应这种交换的最佳方式?我应该在swapModel中触发交换事件吗?
谢谢!
在咖啡脚本中,在这样的函数上使用存在运算符:
myFunc?()
Run Code Online (Sandbox Code Playgroud)
编译成
typeof myFunc === "function" ? myFunc() : void 0;
Run Code Online (Sandbox Code Playgroud)
有没有办法优雅地定义代替"void 0"的内容?或者我必须全部写出来而不是使用原始符号吗?
我很高兴能够开始我的第一个项目,并且想知道您是否有任何关于使用Stylus,Jade和Coffeescript进行开发的最佳方式的经验或指示?
我相信我能搞清楚,但我想我会看看是否有推荐/最快的方法.
我正在使用'coffee-script` npm包:
var coffee = require('coffee-script');
var source = coffee.compile('target.js');
Run Code Online (Sandbox Code Playgroud)
我在source变量里面编译了js .但它也包含在自我调用函数中.我不需要那个调用,b/c我Webmake用来管理依赖项,包装每个文件..我将有2个调用.
"some.js": function (exports, module, require) {
(function() {
var n;
n = 5;
alert("hello world " + n);
}).call(this);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我不需要咖啡脚本调用.PS我找不到任何关于CoffeeScript.compile第二个参数的选项的文档.compile.你能告诉我这些信息吗?谢谢.
那么自3.1以来CoffeeScript已经附带了Rails?太棒了!我正在进入语法.我喜欢简单.
然而,我似乎无法弄清楚如何将它包含在我的网站上.我试过把它包括在内,但是没有用.
我有一个.erb文件我想要这个,new.html.erb(显然,这是一个Rails应用程序):
<script type="text/coffeescript">
# Countdown to date script provided by JavaScriptKit.com
# http://www.javascriptkit.com/script/script2/count.shtml
montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
countdown(yr,m,d) ->
today=new Date()
todayy=today.getYear()
if (todayy < 1000)
todayy+=1900
todaym=today.getMonth()
todayd=today.getDate()
todaystring=montharray[todaym]+" "+todayd+", "+todayy
futurestring=montharray[m-1]+" "+d+", "+yr
difference=(Math.round((Date.parse(futurestring)-Date.parse(todaystring))/(24*60*60*1000))*1)
if (difference==0) and document.write(current)
elseif (difference>0) document.write("ONLY "+difference+" DAYS LEFT!")
countdown(2012,4,30)
</script>?
Run Code Online (Sandbox Code Playgroud)
它根本没有显示出来.想法?
假设我有一个班级,例如:
class myClass
name: ""
id: ""
Run Code Online (Sandbox Code Playgroud)
并说我有一些JSON像:
[{name:"foo", id:1}, {name:"bar", id:2}]
Run Code Online (Sandbox Code Playgroud)
告诉我从上面的数组构建myClass对象数组的通用方法(无需手动映射每个字段)
编辑:我已经添加了一个如何解决这个问题的答案,以防有人挣扎.
我已将笔记本电脑从Ubuntu 11升级到12.04,由于某种原因,coffeescript编译器停止工作.我用它来进行Web开发,但我仍然是一个在linux环境中工作的新手.
基本上当我尝试运行cake.coffeescript时,我得到以下内容:
path.existsSync is deprecated. It is now called `fs.existsSync`.
Cakefile defines the following tasks:
cake doc # generate documentation for *.coffee files
cake doc_copy # copy documentation to gh-pages branch
cake build # generate unified JavaScript file for whole Hallo
cake min # minify the generated JavaScript file
cake bam # build and minify Hallo
Run Code Online (Sandbox Code Playgroud)
所以从某种意义上说它可行,但每当我尝试运行cake.coffeescript构建时,它都会抛出一个错误:
path.existsSync is deprecated. It is now called `fs.existsSync`.
Executing coffee -o examples -j hallo.js -c `find src -type f -name '*.coffee'` …Run Code Online (Sandbox Code Playgroud) coffeescript ×10
node.js ×3
backbone.js ×2
javascript ×2
css ×1
forge ×1
html ×1
models ×1
npm ×1
oop ×1
trigger.io ×1
ubuntu ×1