gpt4 book ai didi

javascript - 如何在模板助手中使用 Meteor 方法

转载 作者:行者123 更新时间:2023-11-28 06:15:56 25 4
gpt4 key购买 nike

如何定义一个可以在模板助手中调用的 Meteor 方法?

我有这两个文件:

文件:lib/test.js

Meteor.methods({
viewTest : function (str) {
return str;
}
});

文件:client/myView.js

Template.helloWorld.helpers({
txt : function () {
var str = Meteor.call('viewTest', 'Hello World.');
return str;
}
});

当我给“str”一个普通字符串时,一切正常。但在这种情况下,我的模板没有任何值(value)。我为了测试而在同一个文件中定义了该方法,其中该方法是一个普通函数,并尝试调用该函数。我得到的错误是该函数不存在。所以我认为 Meteor 会在了解我为其定义的方法之前尝试渲染模板。但我认为这有点不寻常 - 不是吗?

最佳答案

现在有一种新方法可以做到这一点(Meteor 0.9.3.1),它不会污染 session 命名空间

Template.helloWorld.helpers({
txt: function () {
return Template.instance().myAsyncValue.get();
}
});

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);
});
}

在“created”回调中,您创建 ReactiveVariable 的新实例(请参阅 docs )并将其附加到模板实例。

然后,您调用您的方法,当回调触发时,您将返回的值附加到 react 变量。

然后,您可以设置帮助程序以返回 react 变量的值(现在已附加到模板实例),并且当方法返回时它将重新运行。

但请注意,您必须添加reactive-var包才能使其工作

$ meteor add reactive-var

关于javascript - 如何在模板助手中使用 Meteor 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35967351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com