【问题标题】:Call a template from html with default router param in URL使用 URL 中的默认路由器参数从 html 调用模板
【发布时间】:2016-09-27 13:52:39
【问题描述】:

我有一个模板“eventContainer”的铁路线,其中包括一个参数,根据用户在以前的模板中选择的事件。

Router.route ('/eventContainer/:_id', {
  template: "/eventContainer",
  data: function(){      
}});

这工作正常。当用户第二次登录时,我将“eventContainer”模板作为他的主页加载,但我正在寻找一种方法来设置路由参数,因为车把事件调用。 (参数应该是他们看到的最后一个事件)。

有没有一种方法可以使用带有路由参数的双括号{{> eventContainer}} 从html 调用模板?像{{> eventContainer RouterParam:xx}}?。

<template name="home">
  {{#if Template.subscriptionsReady}}
    {{#if notEventJoined}}
      {{> findEvent}}
    {{else}}
      {{> eventContainer}}
    {{/if}}
  {{else}}
  Loading...
  {{/if}}
</template>

还有……

<template name="eventContainer">
  <!-- Here I read the Router.current().params._id -->
</template>

【问题讨论】:

    标签: html meteor iron-router


    【解决方案1】:

    您可以将助手作为参数传递:

    <template name="home">
        {{> eventContainer param}}
    </template>
    
    Template.home.helpers({
      param: function() {
        return Router.current().params._id;
      }
    });
    

    【讨论】:

    • 在您的示例中,param helper 返回 undefined,因为主路径中没有路由参数。我更改了参数帮助器查询以获取加入的最后一个事件(存储在某个集合中),但调用 {{> eventContainer param}} 不会转到参数中指定的路由。可能是因为 eventContainer 是从主路径加载到里面的。
    • 您有eventContainer 模板的路线,但用户真的去/eventContainer 并看到这样的模板吗?正如我所见,您将此模板嵌入到现有模板中,因此有更多方便的方式来处理数据流。
    猜你喜欢
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    相关资源
    最近更新 更多