1

Template.my.renderedでデータを取得できませんが、Chromeのコンソールでは問題ありません。これは私のコードです:

html:

<Template name="moitorContent">
  <div class="tab-pane active" id="1">
      ........
  </div>
</Template>

js:

    Template.moitorContent.rendered = function(){
         if(!this._rendered){
          this._rendered = true;
          console.log(Svse.find({})。fetch());
        }
    }

localhost:3000でChromeを開くと、

コンソール情報は「[]」です

しかし、クロームのコンソールにそれらを入力します

console.log(Svse.find({})。fetch());

console.logはデータを取得できます

このような: ここに画像の説明を入力してください

私が間違っていることについて何か考えはありますか?

どんな提案もありがたいです!

4

1 に答える 1

1

これは、サブスクリプションが完了する前にconsole.logを使用しているために発生しています。

これが当てはまる場合は、これを使用すると機能するはずです。

Template.moitorContent.rendered = function(){
    console.log(Svse.find({}).fetch());
}

これに合格するには、最初にデータがそこにあるSessionかどうかを確認するか、変数を使用してサブスクリプションが完了しているかどうかを確認します。

Template.moitorContent.rendered = function(){
    if(!this._rendered && Svse.find({}).count()) {
      this._rendered = true;
      console.log(Svse.find({}).fetch());
    }
}

よりクリーンな方法は、パッケージを削除しautopublish、手動サブスクリプションを作成してサブスクライブすることです。を使用しSessionてサブスクリプションを完了としてマークし、サブスクリプションが完了したかどうかを確認し、renderedそれを使用して、使用可能なすべてのデータを使用して次のタスクを実行します。

于 2013-03-27T15:05:33.190 に答える