私は何かが足りないかもしれないが、流星の「魔法」がDOM要素に周りの結合データを公転しているようですし、ハンドルを経由して、テキストとHTMLの断片を更新:http://docs.meteor.com/#reactivityメテオ - 定期購読データでキャンバスを自動的に更新していますか?
書き込もうとしたときにこれは、しかし素晴らしいです
var g = canvas.getContext('2d')
g.fillRect(x, y, w, h)
:キャンバスのようなJSコードを経由して移入されますので、<キャンバス>要素でライブデータを表示する流星アプリは、私は、とき、ライブデータの変更私のキャンバスを更新するために、「流星の道」を把握することはできませんHTMLテンプレート内のデータバックアップテキストではありません。
私は、Meteor.Collectionのデータを使用してキャンバスに描画しようとしています。
私の唯一の考えは、handlebar varsによって設定されたスクリプトタグのHTMLテンプレートにキャンバス描画のJSコードを埋め込むことでしたが、流星のイベントとデータバインディングコードはすでにクライアントサイドのJSなので、これは間違っています。
ライブデータの変更をリッスンする方法はありますか?HTML要素/テキストの代わりにJSを使用してキャンバスに描画されますか? トムの答えは以下の私は、反応性コンテキストで任意のコードの実行を許可するように見えるMeteor.depsを、気づく作っ: http://docs.meteor.com/#on_invalidate
私はいくつかの方法
アップデートで質問を明確にすることができます場合は私に知らせてください
これを試して、動作したらここで更新します。
をこれがあなたが "スクリプトタグの埋め込み..."を意味するものかどうかは分かりません。 現在、私はキャンバスを含むテンプレートに{{drawCanvas}}を入れて、 "drawCanvas"という名前のTemplate.canvas.helperの一部である関数内のすべての描画を行います。この関数は何も返しません。レンダリングされますが、キャンバスを更新するように実行されます。それはあなたがすでに試みたことですか? Template.name.helperは、ReactiveDictやそれに応じて更新されるモデルに応じて自動的に反応します。 –
このコメントの意味は、テンプレート内の文字列としてJSコードを動的に生成することでした。明らかに奇妙な)。私の答えは、実際に不条理な流星 – 7zark7
で「正しい」方法と思われました。しかし、私の方法は大丈夫ですか?このアイデアは、何もしない非表示の{{drawCanvas}}を使用しているだけです。これは、反応的なデータが変更されたときに再実行されます(それによってキャンバスを再描画します)。 –