gpt4 book ai didi

javascript - Meteor 路由器和 url 参数

转载 作者:行者123 更新时间:2023-11-28 19:09:58 25 4
gpt4 key购买 nike

我在尝试将 Meteor 中的 URL 参数与 Iron:router 一起使用时遇到一些问题。

在我的应用程序的主页上,我会显示帖子线程。但我希望允许人们通过在 url 中指定其 ID 来选择单个线程。这样,当有人单击指向特定线程(例如 myapp/the_asked_id)的链接时,他只能看到与该线程相关的数据。否则,他会看到所有线程。

我认为这将是我从 url 获取数据的地方,就像在 PHP 中一样,然后检查此参数的值/是否存在:如果它存在/具有正确的值,则显示线程,否则显示所有这些。

这是我迄今为止尝试过的:

HTML 链接:

<a href="#" class="dropdown-toggle green-link" data-toggle="dropdown" title="Notifications" data-target="{{link}}">the link</a>

将 {{link}} 作为我集合中的 _id,以标识要显示的所需线程/文档。

Js链接事件:

'click .talkLink' : function(event, template){
if($(event.target).hasClass('talkLink'))
{
console.log(event.target.dataset.target);
console.log(event.currentTarget);
}
else {
console.log(event.currentTarget);
}
Router.go('/', {_id: event.target.dataset.target});
},

路由器:

this.route('home', {
path: '/:_id?',
data: {
threadId: (this.params._id || "")
}
});

但我无法让它工作,因为它目前总是向我显示未找到的模板...

有人可以向我解释一下出了什么问题以及我应该如何处理吗?

谢谢,

大卫

最佳答案

一些建议:

this.route('home', {
path: '/:_id',
data: function() {
// assuming you have a collection called "Threads"
return Threads.findOne(this.params._id);
}
});
  1. 您需要一个名为“home”的模板。它的数据上下文将是 data 回调的返回
  2. 您不需要在路径中放置 ?
  3. data 是一个回调,您可以在其中访问 this.params 以查找正确的文档。

关于javascript - Meteor 路由器和 url 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30891810/

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