gpt4 book ai didi

javascript - Meteor Subscribe 不适用于 router.current().params

转载 作者:行者123 更新时间:2023-11-28 05:48:41 25 4
gpt4 key购买 nike

当我尝试从集合中获取对象时遇到问题,订阅功能未按预期工作。例如:

客户:

JS

 Template.Main.onCreated(function(){     
var num = Router.current().params.taskid;
console.log(num);
this.subscribe('getTransaction',num);
});

服务器:

 Meteor.publish('getTransaction', function(taskid){ 
return Transactions.find({taskid:taskid});
});

如果我保持原样,我将无法显示任何内容,控制台中显示的值为 9。但是,如果我将变量“num”更改为显式值:9,它将按预期工作。

你知道为什么订阅在这种情况下不起作用吗?

我非常感谢您对此提供的所有帮助。

最佳答案

我认为您的问题可能是创建模板时路由器尚未“准备好”。您是否将订阅放在特定于路线的选项中(我认为您正在使用 Iron-router?):

Router.route('/getTransaction/:_id', {

......
subscriptions: function() {

// add the subscription to the waitlist
this.subscribe('getTransaction', this.params._id).wait();
},
.................................
});

您可以在此处找到更多选项: http://iron-meteor.github.io/iron-router/#wait-and-ready

如果这不起作用,请尝试使用 setTimeout() 函数“延迟”一点订阅。像这样:

Meteor.setTimeout(function(){
this.subscribe('getTransaction',num);
}, 100);

关于javascript - Meteor Subscribe 不适用于 router.current().params,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38266436/

25 4 0
文章推荐: javascript - JS添加li的问题
文章推荐: javascript - 当屏幕尺寸为 800px 时,我想将左侧导航栏菜单
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com