2016-07-17 4 views
1

Template.onRenderedのBlaze.getData()とTemplate.currentData()を試してみましたが、ユースケースとの違いを説明します。私は流星ドキュメントを見渡しBlaze.getData()とTemplate.currentData()の相違点とそれぞれの使用例

Template.currentData()説明している:onCreated、onRendered、またはonDestroyedコールバックの内側に

  • を、テンプレートのデータコンテキストを返します。
  • 結果に反応的な依存関係を確立します。

Blaze.getData([elementOrView]):

  • 現在のデータ・コンテキスト、または流星テンプレートから特定のDOM要素またはビューをレンダリングする際に使用されたデータコンテキストを返します。また

Establishes a reactive dependency on the resultが、これはTemplate.currentData

答えて

0

Template.currentData()の下に何を意味しているあなたは、与えられたテンプレートの現在のデータは、onCreated内、onRenderedまたはonDestroyed取得します。

テンプレートインスタンスを作成しているので、同じテンプレートに対して異なるインスタンスが存在する可能性があることに注意してください。

特定のインスタンスでは、ヘルパーの下では、thisコンテキストの下にデータを取得します。 onCreated、onRenderedでは、これは1レベル上にあり、this.dataはデータです。

currentDataは、作成/レンダリング時などのデータですが、データが変更される可能性があります。テンプレートがコレクションなどの各ループからデータを取得する場合、チャンスはデータはまず定義されずに値が設定され、サブスクリプションがデータを受け取ると変更されます。

currentDataはこれを無効にします。つまり、新しいデータが来たときに結果が更新されます。

Blaze.getData([elementOrView])は、要素またはビューからデータコンテキストを取得することです。つまり、必ずしもテンプレート内にある必要はありません。これはDOM要素でもBlaze.Viewでもかまいません。

つまり、この関数を使用すると、要素がレンダリングされたときに、事実の後にどのようなデータコンテキストであったかがわかります。おそらく要素に期待値が含まれているかどうか、別のTemplateヘルパーやイベントなどから調べることができます。