0

我有一个问题,仅在生产(不是开发)中cannot read property 'click' of undefined,每次点击我都会得到数百个 3-30,还有一些cannot read property 'submit' of undefined. 这可能不是 Meteor 的问题,而是我的代码的问题,所以我只是在寻找任何想法为什么会发生这种情况或如何调试它。我所有的活动都在Template.events或中Template.rendered。它发生在每一页上,无论我点击哪里。

4

1 回答 1

1

有几件事可能导致这种情况。

首先是生产模式下的延迟要高得多。因此,如果您自动假设在渲染模板时数据已准备就绪,那么当流星初始加载时,您可以在很短的时间内获得各种undefined对象的状态。null

您可以检查您的代码,看看您是否使用过任何findOnefind. 对于初始加载,您需要确保在没有任何结果的情况下正确处理查询结果。IE

var data = myCollection.findOne(...);

if(data) {
....
}

或者

var data = myCollection.find(...);

if(data.count()>0) {
....
}

可能导致它的另一件事是您正在使用的可能未正确映射的大气包。

要检查这一点,请查看 chrome 检查器中的网络选项卡:

在此处输入图像描述

查看扩展名与其内容不匹配的文件(js 和 css 文件)。

如果一个文件是一个.js文件,它可能有 HTML 内容(Meteor 不提供 404 错误,而是给他们 html 任何被调用的路径,所以没有给出明确的错误)。

如果是这种情况,请找出它是哪个文件并正确映射它。(您可能正在调用 click 到未正确加载的插件)。在生产模式下,文件被缩小并且包路径发生变化,所以这也可能是它。

于 2013-08-30T07:11:59.583 回答