[英]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.