Meteor Iron Router получает текущий путь от маршрута с параметрами в шаблоне Helper

В помощнике шаблонов я получаю текущий путь от Iron.Router (iron:router) следующим образом:

Router.current().route.path()

Это отлично работает, если маршрут маршрута не содержит параметров (например, /client/:_id/edit). В этом случае функция path() возвращает null.

Как получить текущий путь в Шаблоне, когда маршрут содержит параметры?

Я использую Meteor 1.0 с iron:router 1.0.1

Ответы

Ответ 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);
  }
});

Я предлагаю вам использовать помощник pathFor по умолчанию для отображения URL-адреса в приложении.

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

Этот помощник использует текущий контекст данных (в данном случае MyCollection.findOne(this.params._id)) для извлечения параметров маршрута.

Но вы также можете использовать метод пути из маршрута, который принимает документ, который вы хотите сгенерировать для первого аргумента.