我在服务器端定义了一个Meteor.method(在/ server中的.js中),我可以从客户端模板脚本调用它(使用回调).我想做类似的事情,但希望这一切都是客户端,所以我将方法移动到客户端脚本,但结果返回为'undefined'.
Template.showDialog.events({ 'click #clickme' : function() { Meteor.call('foo', 'ola', function(error, result) { alert('here'); alert(result); }); } }); Meteor.methods({ foo: function (myarg) { return myarg+'CLI'; } });
Rahul.. 8
请参阅Meteor文档,其中说明客户端上的方法是存根,而不是实际方法:
如果确实定义了一个存根,当客户端调用服务器方法时,它也会并行运行它的存根.在客户端上,将忽略存根的返回值.Stubs因其副作用而运行:它们旨在模拟服务器方法的结果,但不等待往返延迟.如果存根抛出异常,它将被记录到控制台.
由于结果被忽略,你会看到undefined
.不要在客户端上使用方法来实现此目的.只需使用javascript函数.