【问题标题】:Meteor method doesn't work流星方法不起作用
【发布时间】:2015-04-06 03:21:23
【问题描述】:

假设我有一个名为TasksCollection,其中几乎没有任务。
我调用了一个方法来向用户返回一个任务数组,但由于某种原因它没有返回任何内容。

下面是一个代码示例:

if (Meteor.isClient) {
// This code only runs on the client
    Template.body.helpers({
       tasks: function () {
            // Show newest tasks first
            Meteor.call("getTasks", function(error, result) {
                return result; // Doesn't do anything..
            });
        }
    });
}

Meteor.methods({
    getTasks: function() {
        return Tasks.find({}, {sort: {createdAt: -1}});
    }
});

任何想法为什么当我调用该方法时它不返回任何内容?

【问题讨论】:

标签: node.js mongodb asynchronous meteor


【解决方案1】:

Tasks.find()返回一个游标,通过DDP传递给客户端是没有意义的。

你的意思可能是返回Tasks.find().fetch(),但这违背了 Meteor 非常好的数据同步机制的目的。

你读过Understanding Meteor's publish/subscribe吗?

【讨论】:

  • 但是输入 return Tasks.find({}, {sort: {createdAt: -1}}); 而不是方法调用有效。
  • 它在控制台中工作,因为默认添加了自动发布包,它在服务器上自动设置发布和客户端上的订阅。说真的,阅读那个“理解”的答案:)
  • 谢谢!我也读了这个,它真的很好地解释了这个系统! (也是 Sacha Greif 写的):discovermeteor.com/blog/…
猜你喜欢
  • 2017-04-18
  • 2015-09-13
  • 1970-01-01
  • 2023-04-04
  • 2015-09-23
  • 2013-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多