我是咖啡脚本的新手,这个定义可能比这个问题本身有更多错误。
鉴于
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))))
)
我在第8行(url = @iterator.next()
)
有谁知道我可能会缺少什么?
答案 0 :(得分:5)
你不应该使用大括号:
nextSlide: ->
try
url = @iterator.next()
catch
@iterator = Iterator(@slides)
url = @iterator.next()
首先,基础知识:CoffeeScript使用重要的空格来分隔代码块。您不需要使用分号
;
来终止表达式,结束该行也会这样做(尽管分号仍可用于将多个表达式拟合到一行上)。而不是使用大括号{
}
来围绕函数,if语句,开关和try/catch中的代码块,而是使用缩进。
答案 1 :(得分:0)
您可以尝试在没有brackets{}
的情况下使用此功能:
nextSlide: ->
try
url = @iterator.next()
catch
@iterator = Iterator(@slides)
url = @iterator.next()
而不是:
nextSlide: ->
try {
url = @iterator.next()
} catch {
@iterator = Iterator(@slides)
url = @iterator.next()