2012-12-08 116 views
1

我将在Coffeescript中实现某种类的Pagniator类。该分页程序类都应保存当前页,MAXPAGES,COLUMNNAMES,信息...Coffeescript类,方法和实例变量

所以我的第一种方法是这样的:

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是jsRoutes.controllers.xxx从播放2.0框架jsroutes目的。 在页面加载我做

paginator = new Paginator jsRoutes.controllers.PlayerController.paginatorConfiguration() 
paginator.setup() 

但我得到一个“this.storeConfig不是一个函数”的所有时间。有人可以帮助我吗?我在这里滥用类语法吗?我的目标是将Paginator的状态封装在Paginator对象(实例)中。在启动时,我想做一些初始化的东西,通过AJAX调用完成一个“路由”,这是一个HTTP端点。

感谢

回答

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输出,则可以轻松地看到此内容。

+0

谢谢,那就是问题所在 – Soccertrash