毋庸置疑,我对Meteor的体验缺乏。我来自Rails背景,你可以在你的视图中做比Meteor更多的逻辑(和魔法)。
情况:我有一些看起来像/things/:_id
的路线,而且我已经命名了这条路线''因为它只显示了一个thing
用户拥有的things
:
FlowRouter.route('/things/:_id', {
name: 'thing',
action() {
BlazeLayout.render('appPage', {app: 'thing', sidebar: "thingsListOnThing", header: 'thingTitle'});
}
});
正如您所看到的,我还加载了一个模板,用于列出sidebar
上所有用户拥有的内容,以便于导航。该模板thingsListOnThing
是此问题的目标。
获得要点?我可以使用things
标记使用active
的{{1}}的完整列表来展示模板的路线,如下所示:
zimme:active-route
此套餐非常棒,但它不会帮助我查看类似// A list of all a user's things
<div class="{{isActiveRoute name='things' class='is-active'}}">
List of Things
</div>
的路线,因为在任何/things/:_id
上,每个内容的每个链接都是is-active
页面,而不仅仅是当前路径thing
与活跃:_id
的{{1}}匹配的页面。
我真的被困在这里了。我的第一个猜测是使用模板助手,但我对于从何处开始感到困惑。
如果需要,请我上传您需要的任何代码。我认为这是一个普遍的问题,你们可能不需要看到我的所有代码来理解我想要完成的事情。
答案 0 :(得分:0)
使用:zimme:active-route
模板助手
Template.listOfThings.helpers({
activeListClass(page) {
const active = ActiveRoute.name('thing') && FlowRouter.getParam('_id') === this._id;
return active && 'active';
},
});
模板HTML:
<a class="{{isActivePath 'thing'}}" href="/things/{{_id}}">
<div class="thingListItem {{activeListClass page}}">
{{title}}
</div>
</a>