我是咖啡脚本的新手,这个定义可能比这个问题本身更糟糕.
特定
class window.SlideManager
constructor: (@$contentDiv, @analyticsCanvas) ->
@iterator = Iterator(@slides)
@slides = @$contentDiv.data('slides')
nextSlide: ->
try {
url = @iterator.next()
} catch {
@iterator = Iterator(@slides)
url = @iterator.next()
}
this.renderSlide(url)
renderSlide: (slide) ->
$.get(slide, {nolayout: 'true'}, (data) ->
@$contentDiv.contents().replaceWith(data)
window.setupCanvas($(@analyticsCanvas), window.createChartData(window.getVisitCounts($(@analyticsCanvas))))
)
Run Code Online (Sandbox Code Playgroud)
我在第8行(url = @iterator.next())遇到意外=语法错误
有谁知道我可能会缺少什么?
你不应该使用大括号:
nextSlide: ->
try
url = @iterator.next()
catch
@iterator = Iterator(@slides)
url = @iterator.next()
Run Code Online (Sandbox Code Playgroud)
首先,基础知识:CoffeeScript使用重要的空格来分隔代码块.您不需要使用分号
;来终止表达式,结束该行也会这样做(尽管分号仍可用于将多个表达式拟合到一行上).而不是使用花括号{}来围绕函数,if语句,开关和try/catch中的代码块,而是 使用缩进.