2012-05-16 4 views
0

내 클래스 PostsPager의 생성자에서 @page의 기본값을 0으로 설정 한 다음 렌더링을 호출합니다. 그러나 render를 입력하면 @page가 정의되지 않습니다. 왜 이럴 수 있니?coffeescript 인스턴스 변수가 정의되지 않았습니다.

class PostsPager 
    contructor: (@page=0)-> 
    render() 
    $(window).scroll(@check) 

    check: => 
    if @nearBottom() 
     @render 

    render: => 
    alert @page # @page = undefined 

와트

편집

컴파일 된 JS

PostsPager = (function() { 

    function PostsPager() { 
     this.renderPosts = __bind(this.renderPosts, this); 

     this.nearBottom = __bind(this.nearBottom, this); 

     this.render = __bind(this.render, this); 

     this.check = __bind(this.check, this); 

    } 

    PostsPager.prototype.contructor = function(page) { 
     this.page = page != null ? page : 0; 
     this.render(); 
     return $(window).scroll(this.check); 
    }; 

    PostsPager.prototype.check = function() { 
     if (this.nearBottom()) { 
     return this.render; 
     } 
    }; 

    PostsPager.prototype.render = function() { 
     alert(this.page); 
     this.page++; 
     $(window).unbind('scroll', this.check); 
     return $.getJSON($('#feed').data('json-url'), { 
     page: this.page 
     }, this.renderPosts); 
    }; 
+0

'new PostsPager()' – Chris

답변

1

당신은 가난한 맞춤법을 가지고, constructorcontructor은 잘못 철자 방법, 생성자 방법입니다. 또한의 방법으로 render으로 전화하려면 @render()라고해야합니다.

class PostsPager 
    constructor: (@page=0)-> 
    @render() 
    #... 

데모 : http://jsfiddle.net/ambiguous/eaQdv/

이 맞춤법 실수가 contructor가 호출되지 않았 음을 의미하고이 @ 누락에 의해 야기 될 것 인에 대한 오류 "알 수없는 변수 렌더링"을 본 적이 이유입니다 당신이 원하는 .

+1

음, 내 경력이 있습니다. – Chris

+0

잡아 주셔서 감사합니다 – Chris

+0

@ 크리스 : 그건 아무것도 아니에요, 진짜 mistaeks을 만들기 시작할 때까지 기다려주십시오 :) –

관련 문제