Meteor:使用If条件在用户单击导航链接时有条件地显示模板

时间:2016-07-24 06:52:21

标签: meteor

我有一些模板对应不同的地方。我正在使用导航栏,其中包含指向不同地方的链接(Manali)。我希望在单击特定链接时显示相应的模板。我尝试为每个锚链接分配id,并在主文件的#if循环中使用它。如下所示。

{{#if equals id 'badrinath'}}

{{> Manali}}  

{{/if}

我也为比较目的创建了一个辅助函数。

UI.registerHelper('equals', function(a, b) {
  return a == b; 
});

但它不起作用。有谁能提出解决方案。我可以捕获链接的哪些属性并使用它来相应地显示模板。

1 个答案:

答案 0 :(得分:1)

你听起来正在寻找"路由"功能。

您可能对Iron Router或Flow Router感兴趣。

您仍然可以在没有路由器的情况下实现您的功能,因为它听起来仍然是如上所述的简单情况。您可能只是缺少一些事件监听器来将id变量设置为正确的值。

可能类似于:

<a data-role="changetemplate" href="targetTemplate">To Target Template</a>
var id = new ReactiveVar(); // add the reactive-var package

Template.myTemplate.helpers({
  id: function () {
    return id.get();
  }
});

Template.myTemplate.events({
  "click a[data-role='changetemplate']": function (event) {
    event.preventDefault();
    id.set(event.currentTarget.href);
  }
});