流星包&变量范围

时间:2015-09-22 12:42:17

标签: javascript variables meteor scope package

My Meteor项目仅以包装结构(互联网上有几篇文章推荐并解释如何执行此操作)。我遇到了一个我似乎无法解决的基本问题。以下问题被剥离到最小测试用例:

我有两个套餐,一个'一个'和'两个' (使用&meteor创建--package'创建并随后添加到项目中)包2保存变量并导出此变量。包1将此变量的内容记录到控制台:

two.js:

two_var = 'two'

package.js(二):

Package.describe({
  name: 'two'
});

Package.onUse(function (api) {
  api.addFiles('two.js', 'client');
  api.export('two_var', 'client')
});

one.js:

Meteor.startup(function() {
    console.log(two_var) //two_var found, unexpected
})

setTimeout(function () {
    console.log(two_var) //two_var found, unexpected
}, 3000)

console.log(two_var) //two_var not found, expected

package.js(one):

Package.describe({
  name: 'one'
});

Package.onUse(function(api) {
  //api.use('two', 'client');  //not using two, but two_var found in certain situations
  api.addFiles('one.js', 'client');
});

正如您所看到的,可以在我不希望的情况下访问包二中的变量。我是否忽视了某些事情或者我是否误解了包装的概念?

0 个答案:

没有答案