Meteor:找不到属性';事件';次js文件中未定义的

Meteor:找不到属性';事件';次js文件中未定义的,meteor,meteor-blaze,meteor-accounts,meteor-helper,Meteor,Meteor Blaze,Meteor Accounts,Meteor Helper,所以我用Meteor开发了一个网站,我有一个基本的应用程序,主要是css、html和js。这些文件都很好用。我使用jquery.load()将另一个html加载到div中,还有另一个与该html文件关联的js文件——cm.html和cm.js,如下所示 <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title></title>

所以我用Meteor开发了一个网站,我有一个基本的应用程序,主要是css、html和js。这些文件都很好用。我使用jquery.load()将另一个html加载到div中,还有另一个与该html文件关联的js文件——cm.html和cm.js,如下所示

<meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title></title>

</head>
<body>

     <div id="cm-container">

         {{> addBook}}
        {{> bookshell}}
    </div>
</body>
<template name="bookshell">
 <ul>
  {{#each books}}
   <li>{{subject}}</li>
  {{/each}}
 </ul>
</template>
<template name="addBook">
 <form class="addBookForm">
  <input type="text" class="subject" placeholder="Subject">
  <button type="submit" class="btn btn-primary">add book</button>
 </form>
</template>

当我通过jquery.load()将cm.html加载到我的主html文件时,我得到错误:

未捕获的TypeError:无法读取未定义的属性“events”


我不确定我做错了什么,因为在我的主js和html中使用相同的格式很好。

我相信您可以通过使用会话变量而不是jquery.load()来实现这一点

例如,在主模板中定义一个会话变量,用于跟踪按钮是否已单击:

main.js

Template.main.onRendered(function() {
  Session.set("showForm", false);
});

Template.main.events({
  'click .showForm' : function(event) {
      event.preventDefault();
      var showForm = Session.get("showForm");
      Session.set("showForm", !showForm);
}
})
然后,您可以使用该会话变量动态隐藏/显示addBook模板:

{{#if showForm}}
 {{> addBook}}
{{/if}}
main.js(或者任何客户端js文件)

主模板内部:

{{#if showForm}}
 {{> addBook}}
{{/if}}

有没有什么原因可以让你用
jquery.load()
代替Meteor方法生成模板?当你通过jQuery做这件事时,
Template.addBook
对象可能不会被创建。嘿@fuzzybabybunny我愿意以任何可行的方式做这件事,但我想做的是当有人点击一个按钮时,这个html文件会被加载到一个任意的div中。meteor方法能做到这一点吗?如果是这样,你怎么做?
{{#if showForm}}
 {{> addBook}}
{{/if}}