如何使用Meteorjs使用URL参数

如何在流星上使用URL参数.

URL可能如下所示: http://my-meteor.example.com:3000?task_name=abcd1234

我想在流星应用程序的mongodb查询中使用’task_name'(abcd1234).

例如.

Template.task_app.tasks = function () {
  return Tasks.find({task_name: task_name}); 
};

谢谢.

您可能希望使用路由器来处理路径并为不同路径呈现某些模板.铁路由器包是最好的一个.如果您还没有使用它我会强烈推荐它.

一旦使用iron-router,获取查询字符串和url参数非常简单.您可以在此处查看文档部分: https://github.com/iron-meteor/iron-router/blob/devel/Guide.md#route-parameters

对于您提供的示例,路由将如下所示:

Router.map(function () {
  this.route('home', {
    path: '/',
    template: 'task_app'
    data: function () {
      // the data function is an example where this.params is available

      // we can access params using this.params
      // see the below paths that would match this route
      var params = this.params;

      // we can access query string params using this.params.query
      var queryStringParams = this.params.query;

      // query params are added to the 'query' object on this.params.
      // given a browser path of: '/?task_name=abcd1234
      // this.params.query.task_name => 'abcd1234'
      return Tasks.findOne({task_name: this.params.query.task_name});

    }
  });
});

这将创建一个路径,该路由将使’task_app’模板呈现与任务名称匹配的第一个任务的数据上下文.

您还可以使用Router.current()从模板助手或其他函数访问url参数和其他路由信息,以获取当前路由.因此,例如在帮助程序中,您可以使用Router.current().params.query.task_name来获取当前任务名称. Router.current()是一个反应元素,因此如果在反应计算中使用它,当对路径进行任何更改时,计算将重新运行.

翻译自:https://stackoverflow.com/questions/22120489/how-to-use-url-parameters-using-meteorjs

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章