如何使用 Meteor 模板助手编辑 Iron-Router 中作为参数传递的值?
Posted
技术标签:
【中文标题】如何使用 Meteor 模板助手编辑 Iron-Router 中作为参数传递的值?【英文标题】:How Do I Use a Meteor Template Helper to Edit a Value Passed as a Parameter in Iron-Router? 【发布时间】:2015-07-19 03:00:57 【问题描述】:如何使用 template-helper 来编辑我传递给使用 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 这个类别:
slugify this
然后我有这条路线:
this.route('List',
path: '/list/:category_slug',
template: 'list',
controller: 'ListController'
);
我可以链接到这条路线并通过以下方式将参数传递给这条路线:
pathFor 'List' category_slug='the-value-i-passed'
但这将是硬编码,无法达到我想要的结果。
我希望它是动态的,通过使用'slugify'
模板助手和 Iron-router 的pathFor
方法并使用this
的值。
我想要实现的是这样的,尽管下面的代码不起作用:
pathFor 'List' category_slug=slugify this
用上面的行来实现我“试图”实现的目标是什么??
我希望我能做这样的事情:
pathFor 'List' category_slug=slugify(this)
或
pathFor 'List' category_slug='slugify this'
【问题讨论】:
【参考方案1】:长话短说,您要查找的内容尚未使用当前语法实现,尽管它是 Meteor Spacebars 所基于的 Handlebars 标准实现的一部分。
目前,您必须创建一个单独的助手来处理您的输入并在 pathFor
中调用它。
JS
Template.myTemplate.helpers(
slugified: function()
return _.slugify(this);
);
空格键
pathFor 'List' category_slug=slugified
请注意,Handlebars 子表达式支持计划在不久的将来,甚至可能会根据此 PR:https://github.com/meteor/meteor/pull/4101
进入 Meteor 的下一个版本【讨论】:
以上是关于如何使用 Meteor 模板助手编辑 Iron-Router 中作为参数传递的值?的主要内容,如果未能解决你的问题,请参考以下文章