簡體   English   中英

如何使用流星模板助手編輯鐵路由器中作為參數傳遞的值?

[英]How Do I Use a Meteor Template Helper to Edit a Value Passed as a Parameter in Iron-Router?

如何使用模板助手編輯傳遞給使用iron-router的pathFor方法創建的路由的參數值?

我有這個模板助手:

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) }}

要么

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

簡而言之,您正在尋找的內容尚未使用當前語法實現,盡管它是Meleb Spacebars所基於的Handlebars標准實現的一部分。

目前,您必須創建一個單獨的幫助程序,它將您的輸入放大並在pathFor調用它。

JS

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

Spacebars

{{pathFor 'List' category_slug=slugified}}

請注意,Handlebars子表達式支持計划在不久的將來,甚至可能根據此PR進入下一版Meteor: https//github.com/meteor/meteor/pull/4101

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM