首頁 >web前端 >js教程 >如何在模板助手中存取 Meteor 方法並避免過早渲染?

如何在模板助手中存取 Meteor 方法並避免過早渲染?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-29 12:44:29881瀏覽

How to Access Meteor Methods Within Template Helpers and Avoid Premature Rendering?

克服模板的過早渲染嘗試:訪問Helpers 中的方法

問題:
如何在模板中訪問Meteor 方法

解決方案:

您可能會遇到這樣的問題:模板助理嘗試存取伺服器端方法可能會失敗,因為模板在方法可以之前渲染。定義的。要解決此問題,請執行以下步驟:

  1. 利用範本中建立的回調來定義將儲存方法結果的反應變數。
  2. 呼叫該方法並處理其回調在建立的回調中。
  3. 在回呼時將方法的回傳值設定到反應變數中。
  4. 在範本幫助程式中,存取反應變數的值。此變數附加到模板實例,當方法傳回其結果時,將觸發助手重新渲染。

更新的程式碼:

<code class="javascript">// client/myView.js
Template.helloWorld.created = function () {
  var self = this;
  self.myAsyncValue = new ReactiveVar("Waiting for response from server...");
  Meteor.call("getAsyncValue", function (err, asyncValue) {
    if (err) console.log(err);
    else self.myAsyncValue.set(asyncValue);
  });
};

Template.helloWorld.helpers({
  txt: function () {
    return Template.instance().myAsyncValue.get();
  },
});</code>

附加說明:確保使用$meteor addreactive-varreactivereactive 包裝才能使該解決方案發揮作用。

以上是如何在模板助手中存取 Meteor 方法並避免過早渲染?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn