0

具体的に私のユースケースは次のとおりです。

2) コレクションが変更された場合、クライアント側で jQuery 関数を実行したい

deps は私が探しているものだと思いますが、現時点では使用したばかりです:

Template.templateName.set () ->
 return Set.find({})

...反応性の観点から。

コレクションが変更されるたびに単純にconsole.logのコレクションにするソリューションで十分です。

4

1 に答える 1

1

コンテキストを使用して、必要なことを行うことは確かに可能です。[1] よりも少し複雑ですが、ドキュメントの deps の例に従えば、やりたいことを簡単に行うことができます。何かのようなもの

var setup = function() {
  var context = new Meteor.deps.Context();
  context.on_invalidate(function() {
    setup();
  });
  context.run(function() {
    Set.find({});
    console.log('changed');        
  });
}
setup();

または、何も返さないヘルパーを作成して、セットアップを取得するコンテキストを利用することもできます。

Template.templateName.do_nothing -> 
  console.log 'changed'
  Set.find({})
  null

ただし、そうしないと HTML が強制的に更新されます。

一方、あなたはただ欲しいかもしれませんCollection.observe.

[1] 彼らがこのプル リクエストをマージする場合、次のようにすることができます。

Meteor.deps.await(function() { return Set.find(); }, function() { 
  console.log('changed'); 
});

awaitさらに洞察が必要な場合は、関数のソースを見ることができます。

于 2012-06-30T03:12:11.957 に答える