2012-12-08 3 views
1

Coffeescript에서 Pagniator 클래스를 구현하려고합니다.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이 재생 2.0 프레임 워크 jsroutes에서 jsRoutes.controllers.xxx을 경우 : 매기기 클래스는

그래서 내 첫 번째 방법이있다 ... currentPage, MAXPAGES, COLUMNNAMES에 대한 정보를 보유해야한다 목적. 페이지로드 나는

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

을하지만 나는 모든 시간 "this.storeConfig이없는 기능이다"얻는다. 누군가 나를 도와 줄 수 있습니까? 클래스 구문을 잘못 사용합니까? 내 목표는 Paginator 객체 (인스턴스)에 캡슐화 된 Paginator의 상태를 유지하는 것입니다. 시작할 때 나는 AJAX 호출을 통해 HTTP 종점 인 "route"에 대한 초기화 작업을 수행하려고합니다.

감사

답변

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

관련 문제