我遇到了一个问题,即仅在制作中(不是开发版)我在每次点击时会获得数百cannot read property 'click' of undefined
个,其中包含cannot read property 'submit' of undefined
个Template.events
。这可能不是Meteor的问题,而是我的代码,所以我只是在寻找任何想法,为什么会发生这种情况或者我如何调试它。我的所有活动都在Template.rendered
或{{1}}。它发生在每一页上,无论我点击哪里。
答案 0 :(得分:1)
有几件事可能导致这种情况。
首先,在生产模式中,延迟要高得多。因此,如果您自动假设在渲染模板时数据已准备就绪,那么当流星初始加载时,您可以获得各种undefined
作为对象的null
非常短的时间。
您可以查看代码,看看您是否使用过findOne
或find
。对于初始加载,您需要确保在没有任何结果的情况下正确处理查询结果。即
var data = myCollection.findOne(...);
if(data) {
....
}
或
var data = myCollection.find(...);
if(data.count()>0) {
....
}
可能导致它的另一件事是您使用的气氛包可能无法正确映射。
要查看此内容,请查看Chrome检查器中的网络标签:
查看扩展名与其内容(js& css文件)不匹配的文件。
如果文件是.js
文件,它可能包含HTML内容(Meteor不会提供404错误,而是在调用任何路径的情况下为它们提供html,因此不会给出明确的错误。)
如果是这种情况,请确定它是哪个文件并正确映射。 (您可能正在调用单击一个未正确加载的插件)。在生产模式下,文件会缩小,并且包路径会发生变化,因此也可能是这样。