我将在Coffeescript中实现某种Pagniator类。 Paginator类应该包含有关currentPage,maxPages,columnNames,...
的信息所以我的第一个方法就是:
class Paginator
currentPage = -1
rowCount = -1
pageSize= -1
columnNames = null
constructor: (@config) ->
setup: ->
@config.ajax(
cache: false
type: "GET"
contentType: "application/json"
dataType: "json"
success: (data) =>
this.configurationReceived(data)
)
configurationReceived: (data) =>
this.storeConfig(data)
this.setupGUI()
this.loadPage(1)
$('.pagination ul li').click( ->
Paginator.loadPage($(this).text())
return false
)
storeConfig: (jsonData) =>
rowCount = jsonData['rowAmount']
pageSize = jsonData['pageSize']
columns = jsonData['columns']
return
@config是来自Play 2.0 Framework jsroutes对象的jsRoutes.controllers.xxx。 在页面加载我做
paginator = new Paginator jsRoutes.controllers.PlayerController.paginatorConfiguration()
paginator.setup()
但是我总是得到“this.storeConfig不是一个函数”。有人可以帮助我吗?我在这里滥用了类语法吗?我的目标是将Paginator的状态封装在Paginator对象(实例)中。在启动时,我想做一些初始化的事情,这是通过AJAX调用到一个HTTP端点的“路由”完成的。
由于
答案 0 :(得分:1)
这里的缩进似乎有问题:
$('.pagination ul li').click( ->
Paginator.loadPage($(this).text())
return false
) # <---
应该是
$('.pagination ul li').click( ->
Paginator.loadPage($(this).text())
return false
)
因此,包含方法“storeConfig”定义的以下代码不属于该类,因此“this.storeConfig”不是函数。
如果您将代码复制到coffeescript.org的“Try-coffescript”表单并检查JavaScript输出,则可以轻松看到此信息。