【问题标题】:Template reference error in meteor even if Template is already defined即使已经定义了模板,流星中的模板引用错误
【发布时间】:2017-07-25 04:55:06
【问题描述】:

即使我已经在我的 html 中定义了模板,我也会收到此错误,但我遗漏了一些东西。 Error in my console

index.html

<template name="navbar">
  <nav class="navbar navbar-default navbar-fixed-top">
    <div class="container">
       <a class="navbar-brand" href="#">TextCircle</a>
       <ul class="nav navbar-nav">
         <li>
            <a href="#" class="js-add-doc">
             <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
              new Document
            </a>
         </li>

       </ul>
       <p class="navbar-text navbar-right">{{> loginButtons}}</p>
     </div>
   </nav>
</template>

main.js

Template.navbar.events({
     "click .js-add-doc":function(event){
        event.preventDefault();
         console.log("add new doc");
      }
});

我错过了什么?

【问题讨论】:

  • 您的main.js 文件在哪里?它似乎是在服务器端(或服务器端和客户端)加载的。
  • 我的 main.js 在根目录下,会不会是这个问题?
  • 解决了这个问题,你能把它粘贴为答案,以便我标记为答案,以防其他人遇到同样的问题
  • 根据错误TextCircle2.js 是您的问题。这听起来像是一个模板定义,但它正在服务器上加载(它位于server/app 文件夹中)。确保每个 api(guide.meteor.com/structure.html) 遵循正确的文件夹结构
  • @EmmanuelAmodu 我发布了答案。谢谢。

标签: javascript meteor spacebars


【解决方案1】:

您的main.js 文件正在服务器端(或服务器端和客户端)加载,但Template 仅在客户端可用。欲了解更多信息,请阅读this
此外,从 Meteor 1.3 开始,建议按照this example 构建您的应用程序。

【讨论】:

    【解决方案2】:

    试试看或者把你的文件放到流星结构的客户端文件夹中。

    if(Meteor.isClient){
      Template.navbar.events({
         "click .js-add-doc":function(event){
            event.preventDefault();
             console.log("add new doc");
          }
       });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-08
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      相关资源
      最近更新 更多