我正在做一个流星应用程序。我在客户端文件夹中的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.
};
由于
答案 0 :(得分:4)
请记住文件加载顺序。在您的案例中templates.js
之前似乎已加载main.js
,因此collectionVariable
未在其评估时定义。如果您想确保可以在文件正文中使用变量,请使用Meteor.startup
:
var localVariable;
Meteor.startup(function(){
localVariable = collectionVariable;
console.log(collectionVariable);
});