如何在不更改路径的情况下激活铁路由器路由



在我的 Meteor 应用程序中,我正在尝试将数据从我的 Iron Router 控制器传递到我的应用程序中部分的模板。如何在不更改路径的情况下激活路由?我不想切换页面,只用我的数据渲染部分(如果有意义的话)。

以下是该应用程序的工作原理:

现在,当我单击导航栏中的下拉链接时,路由已激活

Template.navbar.events
  'click #threads-link': (event)->
    Router.go 'allThreads'

只要我的路由中有路径,就会使用我的数据呈现模板。但是由于我不希望路径更改,我尝试离开路径 - 然后模板不会从我的控制器检索数据!

Router.map ->
  @route "allThreads",
    controller: ThreadsController 

您知道如何让我的模板部分访问控制器中的数据而不更改路径吗?提前感谢!

首先,您可能会看到一些问题,因为最新版本的Iron Router要求您使用Meteor v0.8.0。如果您使用的是以前版本的Meteor,则需要使用较旧的Iron Router (0.6)。

要自定义 ThreadsController 内部的呈现,您可以只覆盖操作函数,也可以定义一个钩子。然后,可以调用 render 方法来呈现所需的任何模板。下面是一个示例:

ThreadsController = RouteController.extend({
  action: function () {
    // Example 1. render this controller's default template and all yields
    this.render();
    // Example 2. render myTemplate into the main yield
    this.render('myTemplate');
    // Example 3. render templates into yield regions
    this.render('myFooter', {to: 'footer'});
  }
}); 

相关内容

最新更新