流星客户端方法

A_L*_*A_L 2 meteor

我在服务器端定义了一个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';
    }
});
Run Code Online (Sandbox Code Playgroud)

Rah*_*hul 8

请参阅Meteor文档,其中说明客户端上的方法是存根,而不是实际方法:

如果确实定义了一个存根,当客户端调用服务器方法时,它也会并行运行它的存根.在客户端上,将忽略存根的返回值.Stubs因其副作用而运行:它们旨在模拟服务器方法的结果,但不等待往返延迟.如果存根抛出异常,它将被记录到控制台.

由于结果被忽略,你会看到undefined.不要在客户端上使用方法来实现此目的.只需使用javascript函数.