2012-12-08 118 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