首页  >  文章  >  web前端  >  如何在模板助手中访问 Meteor 方法并避免过早渲染?

如何在模板助手中访问 Meteor 方法并避免过早渲染?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-29 12:44:29838浏览

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-var 添加reactive-var包才能使该解决方案发挥作用。

以上是如何在模板助手中访问 Meteor 方法并避免过早渲染?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn