【问题标题】:Meteor.call is not reactive inside helpersMeteor.call 在助手内部没有反应
【发布时间】:2017-09-22 14:45:40
【问题描述】:

当我尝试在帮助程序中调用方法时,反应性不起作用。这是我的代码:

服务器端方法代码

Meteor.methods({
getLastContact:function(){
        return contacts.findOne({},{sort: {contactID: -1},fields: {contactID:1}})
    }
})

客户端调用方法

Template.createVendor.helpers({   
  lastIDD: function () {
    Meteor.call('getLastContact',function(err,res){
        console.log(res.contactID);
    });   }});

如果添加了一些新数据,模板助手会失去反应性并且客户端不会得到更新。 谁能指出我做错了什么?

【问题讨论】:

  • 方法调用本身只是远程过程调用,没有反应性的概念。您能解释一下“如果添加了一些新数据”是什么意思吗? contacts 集合中的新数据或客户端上的新数据会导致重新评估助手?
  • 要收集的新数据。
  • 您可以只发布联系人文档吗?如果需要反应性,则方法调用不是您想要使用的。
  • 我认为方法是安全的方式。也许你可以帮助我更好的解决方案。我要做的是在加载页面时抓取最后一条记录并添加增量并记录新行

标签: meteor


【解决方案1】:

有一个包可以让流星方法反应。查看meteor-reactive-method

它会做你想做的事。

【讨论】:

  • 我看到了那个包裹。谢谢你指出。但我需要了解为什么流星是这样设计的。流星文件最差,就像另一种语言需要解释
【解决方案2】:

当你在客户端助手中调用方法时,你应该使用

return ReactiveMethod.call("method_name",Parameter1,Parameter2,..);

包括 ReactiveMethod 调用的包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    • 1970-01-01
    • 2014-06-20
    相关资源
    最近更新 更多