流星铁路由器从模板助手中的参数路由获取当前路径

在模板助手中,我从Iron.Router(铁:路由器)获取当前路径,如下所示:

Router.current().route.path()

这样做很好,除非路由路径包含参数(例如/ client /:_ id / edit).在这种情况下,path()函数返回null.

当路由包含参数时,如何获取Template Helper中的当前路径?

我使用Meteor 1.0与铁:router1.0.1

最佳答案
我想在你的路由中的_id来自一个集合,你需要通过route.path路由所基于的文档.

Router.route("/client/:_id/edit",{
  name:"edit",
  data:function(){
    return MyCollection.findOne(this.params._id);
  }
});

<template name="edit">
  {{myHelper}}
  {{pathFor route="edit"}}
</template>

Template.edit.helpers({
  myHelper:function(){
    return Router.current().route.path(this);
  }
});

我建议您使用默认的路径助手来在应用程序中呈现URL.

https://github.com/EventedMind/iron-router/blob/devel/Guide.md#pathfor

这个帮助器正在使用当前数据上下文(在这种情况下是MyCollection.findOne(this.params._id))来提取路由参数.

但是您也可以使用路由中的路径方法,该方法将您要生成路径的文档作为第一个参数.

转载注明原文:流星铁路由器从模板助手中的参数路由获取当前路径 - 代码日志