如何在路线中呼叫方法?

时间:2015-07-02 23:39:03

标签: meteor iron-router

我有两种搜索形式

POST /search
GET  /search?q=q

对于POST,我可以在客户端使用Meteor.call

'submit form': function() {
    Meteor.call('search', data......
}

对于GET,如何在路由器中呼叫Meteor.call

Router.route('/search', {
  template: 'ItemList',
  data: function() {
  return Meteor.call('search', this.params.query); // ???
}

关于search方法,它不仅会搜索数据库,还会搜索文件系统。

我不知道如何进行第二次GET搜索。

2 个答案:

答案 0 :(得分:1)

我建议不要在路由器中进行呼叫。路由器负责指导操作流程,如果它还管理所有数据和外部资源跟踪,它将使其更加复杂。

在模板级别,您可以轻松检测路由器参数(Router.current())或直接从数据部分中的路由器传递。

然后在渲染时你可以让模板点击你的通话功能。然后让它与一些依赖性跟踪反应

答案 1 :(得分:0)

您可以Router.current().params.q从网址获取q变量。

在上述方法中,您不需要数据:function()。