未捕获的ReferenceError:未定义集合

时间:2013-09-23 10:06:30

标签: meteor

我正在做一个流星应用程序。我在客户端文件夹中的main.js文件中定义了集合变量。在同一位置还有templates.js文件。 Template.myTemplate.rendered = function(){};在templates.js文件中定义。我可以访问渲染部分中的集合变量,但它不在它之外。

如何才能在''渲染'部分之外访问集合变量?

在main.js内部

collectionVariable = new Meteor.Collection('collection_name');

inside templates.js

console.log(collectionVariable); // getting "Uncaught ReferenceError: collectionVariable is not defined" here.

Template.myTemplate.rendered = function() {

  //Some code. Can access the variable here.

};

由于

1 个答案:

答案 0 :(得分:4)

请记住文件加载顺序。在您的案例中templates.js之前似乎已加载main.js,因此collectionVariable未在其评估时定义。如果您想确保可以在文件正文中使用变量,请使用Meteor.startup

var localVariable;

Meteor.startup(function(){
  localVariable = collectionVariable;
  console.log(collectionVariable);
});