【问题标题】:Meteor: Using If condition to conditionally display templates when user clicks a navigation linkMeteor:当用户单击导航链接时,使用 If 条件有条件地显示模板
【发布时间】:2023-03-30 18:37:02
【问题描述】:

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

{{#if equals id 'badrinath'}}

{{> Manali}}  

{{/if}

我也创建了一个辅助函数来进行比较。

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

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

【问题讨论】:

  • 基本上我想要的是如下功能:Manali 。但是meteor 不允许在HTML 标签中使用模板。

标签: meteor


【解决方案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);
  }
});

【讨论】:

  • 对不起..我忘了在这里更新..我已经通过使用 Iron 路由器解决了这个问题..谢谢和抱歉..:)
  • Router.route('/manali', function () { this.render('task9'); });
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
  • 2018-02-07
  • 2020-04-15
  • 1970-01-01
  • 2015-02-28
相关资源
最近更新 更多