我创建了一个本地包并添加到我的项目中,并添加了模板。
package.js
`Package.onUse(function(api) {
api.versionsFrom('1.4.2.3');
api.use('templating', 'client');
api.addFiles('server/main.js', 'server');
api.addFiles('client/main.js', 'client');
api.addFiles('client/main.html', 'client');
api.mainModule('pkgName.js');
});`
我在 client / main.html 中创建了一个模板。
<template name="myTemplate">
<button>Test</button>
</template>
然后在 client / main.js 中,我设置了事件监听器:
Template.myTemplate.events({
'click button': function (e,t){ //do this on click };
})
但是当我运行应用程序时 - 我收到控制台错误
Uncaught TypeError: Cannot read property 'events' of undefined
答案 0 :(得分:0)
好的 - 经过几个小时的研究后,似乎Package.onUse函数必须按照它们应该加载的顺序列出依赖项。
我认为加载顺序仅与主应用程序中的'packages'文件相关,但似乎您还需要按顺序加载依赖项。
所以这就修好了---
Package.onUse(function(api) {
api.versionsFrom('1.4.2.3');
api.addFiles('client/main.html', 'client');
// I moved the html file above the javascript - so the DOM loads first and then the template exists for the event listener to listen to.
api.use('templating', 'client');
api.addFiles('server/main.js', 'server');
api.addFiles('client/main.js', 'client');
api.mainModule('pkgName.js');
});