在我的Meteor应用程序中,我正在尝试将数据从我的Iron Router控制器传递到我的应用程序中的部分模板。如何在不更改路径的情况下激活路径?我不想切换页面,只用我的数据渲染部分(如果这是有道理的)。
以下是该应用的工作原理:
现在,当我点击导航栏中的下拉链接时,路线已激活
Template.navbar.events
'click #threads-link': (event)->
Router.go 'allThreads'
只要我的路径中有路径,这就会使用我的数据呈现模板。但由于我不希望路径发生变化,我尝试离开路径 - 然后模板不会从我的控制器中检索数据!
Router.map ->
@route "allThreads",
controller: ThreadsController
您是否知道如何让我的模板部分访问控制器中的数据而不更改路径?提前谢谢!
答案 0 :(得分:1)
首先,您可能会看到一些问题,因为最新版本的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'});
}
});