流星路由器和网址参数

时间:2015-06-17 12:36:28

标签: javascript meteor iron-router

我在试图使用带有铁的路由器中的URL参数时遇到了一些麻烦:路由器。

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

我认为这将是我从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 || "")
      }
    });

但我无法使其正常工作,因为它目前始终显示未找到的模板...

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

谢谢,

大卫

1 个答案:

答案 0 :(得分:3)

一些建议:

<input-dropdown ng-model="preference" list="values" on-select="pick(value)"></input-dropdown>
  1. 您需要一个名为“home”的模板。它的数据上下文将是this.route('home', { path: '/:_id', data: function() { // assuming you have a collection called "Threads" return Threads.findOne(this.params._id); } }); 回调
  2. 的回报
  3. 您无需在路径中放置data
  4. ?是一个回调,您可以在其中访问data以找到正确的文档。