0

クラスのコンストラクターでPostsPager、デフォルト値の@page0を設定してから、renderを呼び出します。ただし、renderに入ると、@pageが未定義になります。なぜこれでしょうか?

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);
    };
4

1 に答える 1

1

スペルが不十分constructorで、コンストラクターメソッドであり、スペルcontructorが不十分なメソッドです。また、のメソッドとして@render()呼び出すように言う必要があります。あなたが欲しい:renderthis

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

デモ: http: //jsfiddle.net/ambiguous/eaQdv/

このつづりの間違いは、あなたcontructorが呼び出されなかったことを意味します。そのため、の欠落が原因で発生する「不明なレンダリング変数」に関するエラーは発生しませんでした@

于 2012-05-16T01:48:34.227 に答える