2016-08-18 9 views
1

template.onDestoyed内でエラーと奇妙な動作が発生しました。破棄されたコールバック内からView#subscribeを呼び出せません

私は別のルートに切り替えるまで、うまく動作し、subscriber-templateの新しいインスタンスを作成するまで無限スクロールサブスクリプション(特別なサブスクリプションテンプレートに保存されています)のコードを持っています。

コード:

私が最初に私は別のページに行くと、ページ上の加入者の作業の罰金を「スクロールダウン」と「スクロールダウン」
Template.subscriber.onCreated(function() { 
     var template = this; 
     var skipCount = 0; 
     template.autorun(function(c) { 
      template.subscribe(template.data.name, skipCount, template.data.user); 
      var block = true; 
      $(window).scroll(function() { 
       if (($(window).scrollTop() + $(window).height()) >= ($(document).height()) && block) { 
        block = false; 
        skipCount = skipCount + template.data.count; 
        console.log(template.data); 
        console.log("skip_count is "+skipCount); 
        template.subscribe(template.data.name, skipCount, template.data.user, { 
         onReady: function() { 
          block = true; 
         }, 
         onStop: function() { 
          console.log('route switched, subscribtion stopped'); 
         } 
        }); 
       } 
      }); 
     }) 
    }); 

私は(旧サブスクライバテンプレートからデータを取得するどのような必要があります理論的には破壊される)。 2回目に(再度スクロールダウン)、加入者の新規インスタンスが正常に動作します。私が間違って何をして

PIRNT SCREEN CONSOLE

答えて

0

Owch! 流星群の良い男が私を助けました。 実際には問題はjquery.scrollイベントです。テンプレートが破棄されたときにクリーンアップされません。 (それはバグですか?それとも正常な動作ですか?)私はちょうどonDestroyedセクションのスクロールイベントのバインドを解除する必要がありました。

関連する問題