gpt4 book ai didi

javascript - meteor :在页面加载时获取路由参数

转载 作者:行者123 更新时间:2023-11-29 16:58:01 25 4
gpt4 key购买 nike

这是我的问题:我试图在加载我的页面以加载一个实体时进行 API 调用,将很少的实体属性保存到 session 中 - 所以我基本上进行一次调用,并在需要时使用这些属性。

但是当我尝试从路由获取 id 参数时,脚本开头的 Router.current() 为空。

另一方面,当我在 helper 上调用相同的 Router.current() 时,我可以获得我的参数。

知道哪里出了问题/我怎样才能在调用我的助手之前得到这个参数?

这是我的 html,我将在其中使用此属性之一:

<input type="text" name="name" id="addCampaignInputName" value="{{currentCampaignName}}" placeholder="New Campaign Name">

还有 JS:

if (Meteor.isClient) 
{
$(function () {
console.log( Router.current()); ==>> NULL
if( Router.current() !== null) {
Meteor.call("getApiCampaignsById", Router.current().params.id, function(error, results) {
Session.set('currentCampaignDetailsName', results.data.name);
Session.set('currentCampaignDetailsTrackingMethod', results.data.tracking_method_id);
Session.set('currentCampaignDetailsCampaignTypeId', results.data.campaign_type_id);
});
}
});

Template.addCampaign.helpers({
currentCampaignName: function() {
console.log( Router.current()); ===>> DUMP DATA
return Session.get('currentCampaignDetailsName');
},
});
}

最佳答案

那是因为模板助手总是在响应式(Reactive)计算中运行,并且 Router.current()恰好是一个响应式(Reactive)数据源,因此当它准备就绪时,助手将使用正确的值重新运行。

由于您使用的是 iron:router , 你可以使用 onBeforeAction hook ,因为它们可以绑定(bind)到特定路由并在路由参数可用时执行(使用 this.params )。

Router.route("/my-route", {
name: "myRoute",
onBeforeAction: function(){
Meteor.call("getApiCampaignsById", this.params.id, function(error, results) {
Session.set('currentCampaignDetailsName', results.data.name);
Session.set('currentCampaignDetailsTrackingMethod', results.data.tracking_method_id);
Session.set('currentCampaignDetailsCampaignTypeId', results.data.campaign_type_id);
});
//
this.next();
}
});

关于javascript - meteor :在页面加载时获取路由参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30758470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com