1

meteor react-var パッケージを使用しています。テンプレートのjsファイルで定義されている匿名関数でリアクティブ変数を取得するにはどうすればよいですか? viewer.js:

Template.viewer.helpers({
    counter: function () {
        return Template.instance().counter.get();
    }
});

Template.viewer.onCreated(function() {
    this.counter =  new ReactiveVar(0);
});

Template.viewer.onRendered(function(e){
    viewerRendered();
});

function getCounter() {
    // !!Return reactive counter variable
}

function viewerRendered() {
    var counter = getCounter();
    $(document).trigger("ViewerCreated",counter);
}

ありがとう。

4

1 に答える 1

1

コールバックを介して外部関数で現在のテンプレートにアクセスする必要がある場合は、onRendered()複数の方法があります。

  1. 外部関数を直接コールバックとして使用する:

    Template.viewer.onRendered(viewerRendered)
    
    function viewerRendered() {
      let currentTemplate = this
      //...
    }
    
  2. 現在のテンプレートをパラメーターとして渡す:

    Template.viewer.onRendered(function() {
      viewerRendered(this)
    })
    
    function viewerRendered(currentTemplate) {
      //...
    

JavaScript 関数thisは動的であるため非常に柔軟で、データにアクセスする方法は他にもあります。
上記の 2 つは単純な使用例です。

サブスクリプションを使用して、データにアクセスするなど、テンプレートでやりたいことは何でもできます...

于 2015-10-20T14:28:11.747 に答える