Как использовать помощник по шаблону Meteor для редактирования значения, переданного в качестве параметра в Iron-Router?

Как мне использовать шаблон-помощник для редактирования значения параметра, который я передал в маршрут, созданный с использованием метода pathFor для iron-router ???

У меня есть этот шаблон-помощник:

Template.registerHelper('slugify', function(obj){
  return _.slugify(obj);
});

в моем файле .html у меня есть это:

{{#each menuItemsFromDB}}
          {{#each arrayOfMenuItems}}
          <a class="item category" href="">
          {{this}}
          </a>
          {{/each}}
{{/each}}

{{this}} в приведенном выше коде возвращает строку, название категории. Так как я зарегистрировал помощника по шаблону, я могу ЗАМЕТИТЬ эту категорию:

{{slugify this}}

а затем у меня есть этот маршрут:

this.route('List',{
    path: '/list/:category_slug',
    template: 'list',
    controller: 'ListController'
  });

Я могу связать этот маршрут и передать параметр этому маршруту:

{{pathFor 'List' category_slug='the-value-i-passed'}}

Но это было бы жестким кодированием, которое не может достичь желаемого результата.
Я хочу, чтобы он был динамическим, используя вспомогательный шаблон 'slugify' и метод pathFor железного маршрутизатора и используя значение {{this}}.

Я пытаюсь добиться чего-то вроде этого, хотя приведенный ниже код не работает:

{{pathFor 'List' category_slug={{slugify this}} }}

Какова работа, чтобы достичь того, чего я «пытаюсь» достичь с помощью приведенной выше строки ????

Я надеялся, что смогу сделать что-то вроде:

{{pathFor 'List' category_slug=slugify(this) }}

or

{{pathFor 'List' category_slug='{{slugify this}}' }}

person preston    schedule 08.05.2015    source источник


Ответы (1)


Короче говоря, то, что вы ищете, еще не реализовано с использованием текущего синтаксиса, хотя это часть стандартной реализации Handlebars, на которой основана Meteor Spacebars.

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

JS

Template.myTemplate.helpers({
  slugified: function(){
    return _.slugify(this);
  }
});

Пробел

{{pathFor 'List' category_slug=slugified}}

Обратите внимание, что поддержка подвыражений Handlebars планируется в ближайшем будущем и может даже появиться в следующей версии Meteor в соответствии с этим PR: https://github.com/meteor/meteor/pull/4101

person saimeunt    schedule 08.05.2015