2016-08-16 3 views
1

meteor.jsを初めて使用しました。まだそれに慣れています。 私はこのように、サーバー上のカーソルの更新に応じて反応性の更新プログラムをテンプレートどのように取得する:meteor.jsを使用して、積極的にjs関数/イベントを呼び出します。

{{#if waitingforsomething.length}} Something Happened! {{/if}} 

これは、リストやコンテンツの更新、ページの要素を表示するには良いです。今、私の質問です:何かjavascriptを呼び出すか、何かが反応的に更新されたときに何らかのイベントを発生させたいのですが? meteor.jsでそれを行う正しい方法は何でしょうか?

+2

ありますhttps://github.com/meteor/docs/blob/([ 'Tracker.autorun']知っていますかversion-NEXT/long-form/tracker-manual.md)? – MasterAM

答えて

1

Tracker.autorunまたはtemplate instance this.autorunの中には、これらの自動実行内の反応的なデータソースが変更されて実行されます。

反応データソースはReactiveVarインスタンス、DBクエリ、Session変数など

Template.myTemplate.onCreated(function() { 

    // Let's define some reactive data source 
    this.reactive = new ReactiveVar(0); 

    // And put it inside this.autorun 
    this.autorun(() => console.log(this.reactive.get())); 
}); 

Template.myTemplate.events({ 
    // Now whenever you click we assign new value 
    // to our reactive var and this fires 
    // our console.log 
    'click'(event, template) { 
    let inc = template.reactive.get() + 1; 
    template.reactive.set(inc); 
    } 
}); 
1

少し古くなっていますが、Sacha Greif's Reactivity Basicsは、流星の反応性モデルの非常に簡単で簡潔な紹介です。

基本的に、あなたは、reactive computationsと呼ばれるものの特殊なデータオブジェクト(sessionssubscriptionscursorsなど)を観察し、これらreactive sources変更のたびいずれかを実行しますコードを持っています。

これは、計算が私のためにかなりよく働くTracker API

0

を介して公開されています

Template.myTemplate.onRendered(function() { 
     this.computation = Deps.autorun(function() { 
      if (something) { 
       $(".reactive").html("Something Happened!"); 
      } 
     }); 
    }); 

Template.myTemplate.destroyed = function(){ 
    if (this.computation){ 
     this.computation.stop() 
    } 
}; 

私はこの情報がお役に立てば幸いです。

関連する問題